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('')
■ □ ■ □ ■ □ ■ □ □ ■ □ ■ □ ■ □ ■ ■ □ ■ □ ■ □ ■ □ □ ■ □ ■ □ ■ □ ■ ■ □ ■ □ ■ □ ■ □ □ ■ □ ■ □ ■ □ ■ ■ □ ■ □ ■ □ ■ □ □ ■ □ ■ □ ■ □ ■