#100道NumPy练习题
#一、数据创建与基本操作
#1.创建一个长度为10的一维全零数组。
import numpy as np
a = np.zeros(10,dtype = int)
print(a)
[0 0 0 0 0 0 0 0 0 0]
#2.创建一个3×3的二维全1数组。
import numpy as np
a = np.ones((3,3),dtype = int)
print(a)
[[1 1 1]
[1 1 1]
[1 1 1]]
#3.创建一个5×5的单位矩阵。
import numpy as np
a = np.eye(5,dtype = int)
print(a)
[[1 0 0 0 0]
[0 1 0 0 0]
[0 0 1 0 0]
[0 0 0 1 0]
[0 0 0 0 1]]
#4.创建一个人0到9的一维数组。
import numpy as np
a = np.arange(10)
print(a)
[0 1 2 3 4 5 6 7 8 9]
#5.创建一个从10到49的一维数组。
import numpy as np
a = np.arange(10,50)
print(a)
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]
#6.创建一个包含20个元素的等差数列,从0到1。
import numpy as np
a = np.linspace(0,1,20)
print(a)
[0. 0.05263158 0.10526316 0.15789474 0.21052632 0.26315789
0.31578947 0.36842105 0.42105263 0.47368421 0.52631579 0.57894737
0.63157895 0.68421053 0.73684211 0.78947368 0.84210526 0.89473684
0.94736842 1. ]
#7.创建一个3×3的随机数组(值在0-1之间)。
import numpy as np
a = np.random.rand(3,3)
print(a)
[[0.57561549 0.35624582 0.98400423]
[0.64519475 0.46653773 0.61003991]
[0.44659391 0.23761659 0.02538453]]
#8.创建一个10×10的随机数组并找到最大值和最小值。
import numpy as np
a = np.random.rand(10,10)
print(a)
max_a = np.max(a)
min_a = np.min(a)
print("最大值",max_a)
print("最小值",min_a)
[[0.14997483 0.63146586 0.1515143 0.77205867 0.51239466 0.45637962
0.71376739 0.50984618 0.81385418 0.25653962]
[0.5863527 0.34428441 0.39445984 0.76218926 0.94851103 0.41088232
0.1673427 0.95369732 0.37721195 0.60089694]
[0.06956781 0.5231878 0.20054078 0.84368206 0.41675891 0.29751243
0.17624232 0.61983447 0.10675026 0.15449083]
[0.14976148 0.53685153 0.00249188 0.63762313 0.8652136 0.73729956
0.42241523 0.60345739 0.73951732 0.75822322]
[0.95324238 0.32313976 0.21753265 0.29152207 0.31350766 0.56223066
0.56463936 0.64372726 0.62980919 0.74284169]
[0.42765036 0.75573479 0.64096646 0.36281539 0.03419416 0.69813575
0.0407868 0.23903913 0.83423034 0.87716584]
[0.91358497 0.93725362 0.98913806 0.67757666 0.88238782 0.06181928
0.66907977 0.90266313 0.54696334 0.26477886]
[0.38622505 0.14717697 0.44613206 0.16375107 0.38480433 0.26630512
0.51965354 0.99665215 0.44909775 0.22183136]
[0.38076238 0.2233892 0.28017835 0.67772286 0.10162285 0.5099242
0.00618366 0.93715355 0.41136914 0.33461806]
[0.81723663 0.33080414 0.31269336 0.39252636 0.50806907 0.58543334
0.2291617 0.47380334 0.93941091 0.02510199]]
最大值 0.9966521458900903
最小值 0.002491883128432848
#9.创建一个8×8的棋盘式数组(0黑,1白相间)。
import numpy as np
a = np.zeros((8,8),dtype = int)
a[1::2,::2] = 1 #奇数行
a[::2,1::2] = 1 #偶数行
print(a)
[[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]
[1 0 1 0 1 0 1 0]]
#10.创建一个自定义的5×5数组并打印其数据类型。
import numpy as np
a = np.array([[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25]])
print(a)
print(a.dtype)
[[ 1 2 3 4 5]
[ 6 7 8 9 10]
[11 12 13 14 15]
[16 17 18 19 20]
[21 22 23 24 25]]
int64
#二、数组索引与切片
#11.创建一个10×10数组,并提取第3行第5列的元素。
import numpy as np
a = np.arange(100).reshape(10,10)
print(a)
#提取第3行第5列的元素
b = a[2,4]
print(b)
[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]
24
#12.提取一个数组的所有偶数索引元素。
import numpy as np
a = np.array([0,1,2,3,4,5,6,7,8,9])
b = a[::2] #从0开始,步长为2。
print(b)
[0 2 4 6 8]
#13.将一个数据的所有大于5的元素替换为1,其余为0。
import numpy as np
a = np.array([0,1,2,3,4,5,6,7,8,9])
b = np.where(a>5,1,0)
print(b)
[0 0 0 0 0 0 1 1 1 1]
#14.提取一个二维数据的第2列。
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = a[:,1]
print(b)
[2 5 8]
#15.反转一个一维数组。
import numpy as np
a = np.arange(10)
print(a)
b = a[::-1]
print(b)
[0 1 2 3 4 5 6 7 8 9]
[9 8 7 6 5 4 3 2 1 0]
#16.反转一个二维数组的行。
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
b = a[::-1,:]
print(b)
[[1 2 3]
[4 5 6]
[7 8 9]]
[[7 8 9]
[4 5 6]
[1 2 3]]
#17.反转一个二维数组的列。
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
b = a[:,::-1]
print(b)
[[1 2 3]
[4 5 6]
[7 8 9]]
[[3 2 1]
[6 5 4]
[9 8 7]]
#18.创建一个10×10数组 并提取其中3×3的子数组。
import numpy as np
a = np.arange(100).reshape(10,10)
print(a)
b = a[1:4,2:5]
print(b)
[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]
[[12 13 14]
[22 23 24]
[32 33 34]]
#19.使用布尔索引提取数组中大于5的元素。
import numpy as np
a = np.arange(10)
b = a > 5
arr = a[b]
print(arr)
[6 7 8 9]
#20.使用花式索引从数组中提取特定位置的元素。
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9])
b = [0,2,4,6]
print(a[b])
[1 3 5 7]
说明:上述题目,是在Jupyter Notebook上运行的。

被折叠的 条评论
为什么被折叠?



