在实际使用numpy时,我们常常会使用numpy数组的-1维度和”:”用以调用numpy数组中的元素。也经常因为数组的维度而感到困惑。
总体来说,”:”用以表示当前维度的所有子模块
“-1”用以表示当前维度所有子模块最后一个,”负号用以表示从后往前数的元素”
测试代码
import numpy as np b = np.arange(start=0, stop=24, dtype=int) print('b.shape', b.shape) # b.shape (24,) b1 = b.reshape((4, 2, 3)) print('the value of b1\n', b1) # the value of b1 # [[[ 0 1 2] # [ 3 4 5]] # # [[ 6 7 8] # [ 9 10 11]] # # [[12 13 14] # [15 16 17]] # # [[18 19 20] # [21 22 23]]] print('b1[-1]\n', b1[-1]) # 从最外层的维度分解出最后一个模块 # b1[-1] # [[18 19 20] # [21 22 23]] for a in b1[-1]: print('s') # 在这个模块中有两个小的模块,所以程序运行两次 # s # s print('b1[:-1]\n', b1[:-1]) # 从最外层的模块中分解出除最后一个子模块后其余的模块 # b1[:-1] # [[[ 0 1 2] # [ 3 4 5]] # # [[ 6 7 8] # [ 9 10 11]] # # [[12 13 14] # [15 16 17]]] for a1 in b1[:-1]: print('s') # 在这个模块中有三个小的模块,所以程序运行两次 # s # s # s print('b1[-1:]\n', b1[-1:]) # 写在最后一个维度的":"没有实质性作用,此处表示的意思和b1[-1]相同 # b1[-1:] # [[[18 19 20] # [21 22 23]]] print('b1[:,-1]\n', b1[:, -1]) # 表示取出最外层的所有维度后每一个子模块中选择最后一个子模块 # b1[:,-1] # [[ 3 4 5] # [ 9 10 11] # [15 16 17] # [21 22 23]] print('b1[:,:,-1]\n', b1[:, :, -1]) # 表示取最里层维度的最后一个元素重新组成新的元组 # b1[:,:,-1] # [[ 2 5] # [ 8 11] # [14 17] # [20 23]]
以上这篇浅谈numpy数组中冒号和负号的含义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。