数组的切片索引:
数组的切片索引和列表非常类似,下面用代码简单说明
1 a = np.random.rand(16).reshape(4, 4) 2 print("数组a:\n", a) 3 print(a[-1][1:4]) 4 Out[1]: 5 数组a: 6 [[0.04175379 0.43013992 0.5398909 0.40638248] 7 [0.3305902 0.11958799 0.48680358 0.30755734] 8 [0.00893887 0.3848716 0.21018253 0.88170218] 9 [0.80198391 0.4922656 0.67535542 0.64647139]] 10 [0.4922656 0.67535542 0.64647139] |
由于和列表类似,且要符号多维数组的特征,所以这里不过多阐述。有需要参考列表的相关知识。
数组的循环遍历:
1 a = np.random.rand(9).reshape(3, 3) 2 print("数组a:\n", a) 3 for row in a: 4 print(row) # 一行一行的输出 5 for item in a.flat: 6 print(item) 7 # 通用的循环函数 8 for_test = np.apply_along_axis(np.mean, axis=0, arr=a) # apply_along_axis(func1d, axis, arr, *args, **kwargs) 9 print("np.apply_along_axis的调试:\n", for_test) # axis=0为按列,axis=1为按行 10 Out[2]: 11 数组a: 12 [[0.97420758 0.20766438 0.52942127] 13 [0.82673775 0.44288163 0.41729451] 14 [0.1373707 0.68103565 0.92256133]] 15 [0.97420758 0.20766438 0.52942127] 16 [0.82673775 0.44288163 0.41729451] 17 [0.1373707 0.68103565 0.92256133] 18 0.9742075804081937 19 0.20766438289931244 20 0.5294212665874829 21 0.8267377457345865 22 0.44288163199889663 23 0.4172945079908593 24 0.13737070280419617 25 0.6810356459375222 26 0.922561331228303 27 np.apply_along_axis的调试: 28 [0.64610534 0.44386055 0.62309237] |
np.apply_along_axis()方法在我们对矩阵按行按列操作的时候最好用它。注意,第一个参数是方法,方法可以是自己对矩阵每个元素操作的函数方法。
条件和布尔数组:
1 a = np.random.rand(9).reshape(3, 3) 2 print(a < 0.5) # 输出布尔数组 3 print(a[a < 0.5]) # 输出true对应的元素 4 Out[3]: 5 [[ True False True] 6 [False True False] 7 [False True False]] 8 [0.19353844 0.03944841 0.38137674 0.3069755 ] |
数组 形状变化:
1 a = np.random.rand(9).reshape(3, 3) 2 a = a.ravel() # 此时的a是一个新数组 3 print(a) # 将数组平铺成一维数组 4 a.shape = (3, 3) # 你也可以用reshape 5 print(a) 6 Out[4]: 7 [0.83017305 0.11660585 0.83060752 0.221212 0.35489551 0.74925696 8 0.61087204 0.85969402 0.90966368] 9 [[0.83017305 0.11660585 0.83060752] 10 [0.221212 0.35489551 0.74925696] 11 [0.61087204 0.85969402 0.90966368]] |
注意用A.T表示转置,或者用A.transpose()。
原文地址:https://www.cnblogs.com/dan-baishucaizi/p/9388007.html
时间: 2024-12-10 17:52:38