Python数据分析作业第二章 Numpy

题目来源: <<Python数据分析与应用>> 人民邮电出版社 张良均等编著
最后一次编辑时间: 2019-8-8

题目

任务1 创建数组并进行运算

实现思路及步骤
(1) 创建一个数值范围为0~1,间隔为0.01的数组。
(2) 创建100个服从正态分布的随机数。
(3) 对创建的两个数组进行四则运算。
(4) 对创建的随机数组进行简单的统计分析。

任务2 创建一个国际象棋的棋盘
1.需求说明
创建国际象棋棋盘,填充8×8矩阵。国际象棋棋盘是个正方形,由横纵向各8格、颜色一深一浅交错排列的64个小方格组成,深色格为黑格,浅色格为白格,棋子就在这些格子中移动,如下图所示。
图片说明

实现思路及步骤
(1) 创建一个8×8矩阵。
(2) 把1,3,5,7行的0,2,4,6列的元素设置为1;0,2,4,6行的1,3,5,7列的元素设置为1,规律是行号和列号之和是奇数的位置设置为1。





解答

任务1

import numpy as np
arr1 = np.arange(0,1,0.01)
arr1
array([0.  , 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1 ,
       0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2 , 0.21,
       0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3 , 0.31, 0.32,
       0.33, 0.34, 0.35, 0.36, 0.37, 0.38, 0.39, 0.4 , 0.41, 0.42, 0.43,
       0.44, 0.45, 0.46, 0.47, 0.48, 0.49, 0.5 , 0.51, 0.52, 0.53, 0.54,
       0.55, 0.56, 0.57, 0.58, 0.59, 0.6 , 0.61, 0.62, 0.63, 0.64, 0.65,
       0.66, 0.67, 0.68, 0.69, 0.7 , 0.71, 0.72, 0.73, 0.74, 0.75, 0.76,
       0.77, 0.78, 0.79, 0.8 , 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87,
       0.88, 0.89, 0.9 , 0.91, 0.92, 0.93, 0.94, 0.95, 0.96, 0.97, 0.98,
       0.99])
arr2 = np.random.randn(100)
arr2
array([-0.6487794 , -0.44252037,  0.24412342, -0.74932025,  0.88842853,
        0.15190154, -1.70819707, -0.67692648,  1.20870647,  2.63733806,
        0.14204166,  0.41242829,  1.56332275, -0.40483612, -0.18836961,
        0.7472108 ,  0.58283586, -0.49577841, -0.4539353 , -1.16072816,
       -1.10188377, -0.5588487 ,  1.08361568,  1.11749254, -0.8921338 ,
        0.13675102, -1.29422933, -0.66048132,  0.95357163,  0.01995013,
       -0.2871263 ,  0.94483744,  1.76548629,  0.55019581,  1.14297131,
        0.88725105,  0.11706332, -0.68116944,  0.1144226 , -0.39185198,
        1.13848484,  0.9482407 ,  1.68785819,  0.66611094, -0.6246768 ,
        0.63287564, -0.63124888, -0.30403335, -0.41384278, -1.42176417,
        0.10573151, -0.09783914, -0.27043809, -0.36549843, -0.93485865,
       -0.75685364, -0.28421567, -1.10450801,  0.49111744,  0.5927878 ,
        0.62119392,  0.27381763,  0.84413289,  1.21615197, -1.32128195,
       -1.23880218, -0.62400153, -0.26380872,  0.76006022, -0.35116394,
        0.16630846, -0.19124976,  0.33647445,  0.11380066, -0.05134601,
       -0.47220286, -0.28399327,  1.37666588, -0.07697372, -1.08596515,
        1.52170807, -2.35675007,  1.25000302, -1.2919213 ,  0.69817616,
        0.74636554, -0.74516222,  1.74470404, -0.57138214,  0.13027209,
        1.10642818,  0.42944837,  1.25185267, -0.34739257,  1.15990505,
        1.03086822, -0.82751616,  1.21939573,  1.05322262,  0.04996639])
arr3 = np.array([[1,2,3],[4,5,6]])
arr4 = np.array([[7,8,9],[10,11,12]])
arr3 + arr4
array([[ 8, 10, 12],
       [14, 16, 18]])
arr3 - arr4
array([[-6, -6, -6],
       [-6, -6, -6]])
arr3 * arr4
array([[ 7, 16, 27],
       [40, 55, 72]])
arr3 / arr4
array([[0.14285714, 0.25      , 0.33333333],
       [0.4       , 0.45454545, 0.5       ]])
arr2.sum()
10.668268556807323
arr2.max()
2.6373380578931074
arr2.min()
-2.3567500746934402
arr2.mean()
0.10668268556807323
arr2.cumsum()
array([-0.6487794 , -1.09129977, -0.84717636, -1.5964966 , -0.70806807,
       -0.55616654, -2.26436361, -2.94129009, -1.73258362,  0.90475444,
        1.04679609,  1.45922438,  3.02254713,  2.61771101,  2.4293414 ,
        3.17655221,  3.75938807,  3.26360966,  2.80967436,  1.64894619,
        0.54706242, -0.01178628,  1.07182941,  2.18932195,  1.29718815,
        1.43393917,  0.13970984, -0.52077148,  0.43280015,  0.45275028,
        0.16562398,  1.11046143,  2.87594772,  3.42614353,  4.56911484,
        5.45636588,  5.57342921,  4.89225977,  5.00668237,  4.61483039,
        5.75331523,  6.70155593,  8.38941411,  9.05552506,  8.43084826,
        9.0637239 ,  8.43247502,  8.12844168,  7.7145989 ,  6.29283473,
        6.39856624,  6.3007271 ,  6.030289  ,  5.66479058,  4.72993192,
        3.97307828,  3.68886261,  2.58435461,  3.07547205,  3.66825985,
        4.28945377,  4.5632714 ,  5.40740429,  6.62355626,  5.30227431,
        4.06347214,  3.43947061,  3.17566189,  3.93572211,  3.58455817,
        3.75086663,  3.55961687,  3.89609133,  4.00989199,  3.95854598,
        3.48634312,  3.20234985,  4.57901573,  4.502042  ,  3.41607686,
        4.93778493,  2.58103486,  3.83103787,  2.53911657,  3.23729274,
        3.98365827,  3.23849605,  4.98320009,  4.41181796,  4.54209005,
        5.64851823,  6.0779666 ,  7.32981927,  6.98242671,  8.14233175,
        9.17319997,  8.34568381,  9.56507954, 10.61830216, 10.66826856])
arr2.std()
0.9012753962081804
arr2.var()
0.8122973398102127
arr2
array([-0.6487794 , -0.44252037,  0.24412342, -0.74932025,  0.88842853,
        0.15190154, -1.70819707, -0.67692648,  1.20870647,  2.63733806,
        0.14204166,  0.41242829,  1.56332275, -0.40483612, -0.18836961,
        0.7472108 ,  0.58283586, -0.49577841, -0.4539353 , -1.16072816,
       -1.10188377, -0.5588487 ,  1.08361568,  1.11749254, -0.8921338 ,
        0.13675102, -1.29422933, -0.66048132,  0.95357163,  0.01995013,
       -0.2871263 ,  0.94483744,  1.76548629,  0.55019581,  1.14297131,
        0.88725105,  0.11706332, -0.68116944,  0.1144226 , -0.39185198,
        1.13848484,  0.9482407 ,  1.68785819,  0.66611094, -0.6246768 ,
        0.63287564, -0.63124888, -0.30403335, -0.41384278, -1.42176417,
        0.10573151, -0.09783914, -0.27043809, -0.36549843, -0.93485865,
       -0.75685364, -0.28421567, -1.10450801,  0.49111744,  0.5927878 ,
        0.62119392,  0.27381763,  0.84413289,  1.21615197, -1.32128195,
       -1.23880218, -0.62400153, -0.26380872,  0.76006022, -0.35116394,
        0.16630846, -0.19124976,  0.33647445,  0.11380066, -0.05134601,
       -0.47220286, -0.28399327,  1.37666588, -0.07697372, -1.08596515,
        1.52170807, -2.35675007,  1.25000302, -1.2919213 ,  0.69817616,
        0.74636554, -0.74516222,  1.74470404, -0.57138214,  0.13027209,
        1.10642818,  0.42944837,  1.25185267, -0.34739257,  1.15990505,
        1.03086822, -0.82751616,  1.21939573,  1.05322262,  0.04996639])
np.unique(arr2) # 去除重复值默认输出的是排序后的
array([-2.35675007, -1.70819707, -1.42176417, -1.32128195, -1.29422933,
       -1.2919213 , -1.23880218, -1.16072816, -1.10450801, -1.10188377,
       -1.08596515, -0.93485865, -0.8921338 , -0.82751616, -0.75685364,
       -0.74932025, -0.74516222, -0.68116944, -0.67692648, -0.66048132,
       -0.6487794 , -0.63124888, -0.6246768 , -0.62400153, -0.57138214,
       -0.5588487 , -0.49577841, -0.47220286, -0.4539353 , -0.44252037,
       -0.41384278, -0.40483612, -0.39185198, -0.36549843, -0.35116394,
       -0.34739257, -0.30403335, -0.2871263 , -0.28421567, -0.28399327,
       -0.27043809, -0.26380872, -0.19124976, -0.18836961, -0.09783914,
       -0.07697372, -0.05134601,  0.01995013,  0.04996639,  0.10573151,
        0.11380066,  0.1144226 ,  0.11706332,  0.13027209,  0.13675102,
        0.14204166,  0.15190154,  0.16630846,  0.24412342,  0.27381763,
        0.33647445,  0.41242829,  0.42944837,  0.49111744,  0.55019581,
        0.58283586,  0.5927878 ,  0.62119392,  0.63287564,  0.66611094,
        0.69817616,  0.74636554,  0.7472108 ,  0.76006022,  0.84413289,
        0.88725105,  0.88842853,  0.94483744,  0.9482407 ,  0.95357163,
        1.03086822,  1.05322262,  1.08361568,  1.10642818,  1.11749254,
        1.13848484,  1.14297131,  1.15990505,  1.20870647,  1.21615197,
        1.21939573,  1.25000302,  1.25185267,  1.37666588,  1.52170807,
        1.56332275,  1.68785819,  1.74470404,  1.76548629,  2.63733806])
arr2.sort()
arr2
array([-2.35675007, -1.70819707, -1.42176417, -1.32128195, -1.29422933,
       -1.2919213 , -1.23880218, -1.16072816, -1.10450801, -1.10188377,
       -1.08596515, -0.93485865, -0.8921338 , -0.82751616, -0.75685364,
       -0.74932025, -0.74516222, -0.68116944, -0.67692648, -0.66048132,
       -0.6487794 , -0.63124888, -0.6246768 , -0.62400153, -0.57138214,
       -0.5588487 , -0.49577841, -0.47220286, -0.4539353 , -0.44252037,
       -0.41384278, -0.40483612, -0.39185198, -0.36549843, -0.35116394,
       -0.34739257, -0.30403335, -0.2871263 , -0.28421567, -0.28399327,
       -0.27043809, -0.26380872, -0.19124976, -0.18836961, -0.09783914,
       -0.07697372, -0.05134601,  0.01995013,  0.04996639,  0.10573151,
        0.11380066,  0.1144226 ,  0.11706332,  0.13027209,  0.13675102,
        0.14204166,  0.15190154,  0.16630846,  0.24412342,  0.27381763,
        0.33647445,  0.41242829,  0.42944837,  0.49111744,  0.55019581,
        0.58283586,  0.5927878 ,  0.62119392,  0.63287564,  0.66611094,
        0.69817616,  0.74636554,  0.7472108 ,  0.76006022,  0.84413289,
        0.88725105,  0.88842853,  0.94483744,  0.9482407 ,  0.95357163,
        1.03086822,  1.05322262,  1.08361568,  1.10642818,  1.11749254,
        1.13848484,  1.14297131,  1.15990505,  1.20870647,  1.21615197,
        1.21939573,  1.25000302,  1.25185267,  1.37666588,  1.52170807,
        1.56332275,  1.68785819,  1.74470404,  1.76548629,  2.63733806])


任务2

import numpy as np
arr = np.zeros((8,8), dtype='int32')
arr[0:7:2, 0:7:2] = 1
arr[1:8:2, 1:8:2] = 1
arr
array([[1, 0, 1, 0, 1, 0, 1, 0],
       [0, 1, 0, 1, 0, 1, 0, 1],
       [1, 0, 1, 0, 1, 0, 1, 0],
       [0, 1, 0, 1, 0, 1, 0, 1],
       [1, 0, 1, 0, 1, 0, 1, 0],
       [0, 1, 0, 1, 0, 1, 0, 1],
       [1, 0, 1, 0, 1, 0, 1, 0],
       [0, 1, 0, 1, 0, 1, 0, 1]])
for i in range(arr.shape[0]):
    for j in range(arr.shape[1]):
        if arr[i,j] == 0:
            print('□', end=" ")
        else:
            print("■", end=" ")
    print('')
■ □ ■ □ ■ □ ■ □ 
□ ■ □ ■ □ ■ □ ■ 
■ □ ■ □ ■ □ ■ □ 
□ ■ □ ■ □ ■ □ ■ 
■ □ ■ □ ■ □ ■ □ 
□ ■ □ ■ □ ■ □ ■ 
■ □ ■ □ ■ □ ■ □ 
□ ■ □ ■ □ ■ □ ■