嗯,随便写了一点点,修改了一点点但几乎没啥变化吧import numpy as np
l代码
s = [[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
[[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]]]
a = np.array(ls, dtype=int)
print(a)#我们定义了一个三维数组,dtype 为 int,int 占 4个字节。
# 第一维度,从元素 1 到元素 13,间隔 12 个元素,总字节数为 48;
# 第二维度,从元素 1 到元素 5,间隔 4 个元素,总字节数为 16;
# 第三维度,从元素 1 到元素 2,间隔 1 个元素,总字节数为 4。
# 所以跨度为(48, 16, 4)。
ls = [[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
[[13, 14, 15, 16], [18,71, 19, 20], [21, 22, 23, 24]]]
b= np.array(ls, dtype=int,order='C')#order一般默认行主序列,用列主序列时order='F'
y=[int(x) for x in np.nditer(b)]
print(y)
# 高效的多维迭代器nditer,可将多维变一维
c = np.arange(6).reshape(2, 3)
it = np.nditer(c, flags=['multi_index'])#行索引c_index、列索引f_index、行列索引multi_index
while not it.finished:
print("%d <%s>" % (it[0], it.multi_index))#这里it.你所用的索引
it.iternext()
#追踪索引
print(b.flatten())
输出结果
[[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
[[13 14 15 16]
[17 18 19 20]
[21 22 23 24]]]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 71, 19, 20, 21, 22, 23, 24]
0 <(0, 0)>
1 <(0, 1)>
2 <(0, 2)>
3 <(1, 0)>
4 <(1, 1)>
5 <(1, 2)>
[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 71 19 20 21 22 23 24]