import numpy as np
o = np.array([
[
[1,2,3,4],
[5,6,7,8]
],
[
[9,10,11,12],
[13,14,15,16]
]
])
print(o.flatten())
# array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])
首先将每个矩阵的行变平
但是我希望它首先使每个矩阵的列变平,以便打印 [1,5,2,6,3,7,4,8,9,13,10,14,11,15,12,16]
我尝试搜索,发现通过传递“ F”作为参数,但是得到[1,5,9,13,2,6,10,14,3,7,11,15,4,8, 12,16] 也就是说,它无需先完成即可切换到另一个矩阵。
简而言之,我想用双括号找到与R索引相同的python
someData <- rep(0, 2*3*4);
ar <- array(someData, c(2, 3, 4));
ar[1,1,1] = 1
ar[1,2,1] = 2
ar[1,3,1] = 3
ar[2,1,1] = 4
ar[2,2,1] = 5
ar[2,3,1] = 6
ar[1,1,2] = 7
ar[1,2,2] = 8
ar[1,3,2] = 9
print(ar[[1]]) # 1
print(ar[[2]]) # 4
print(ar[[3]]) # 2
print(ar[[4]]) # 5
print(ar[[5]]) # 3
print(ar[[6]]) # 6
答案 0 :(得分:3)
您可以先在第二维上执行np.concatenate
,然后再按列主要顺序flatten
进行操作,就像您提到的那样:
np.concatenate(o, axis=1).flatten(order='f')
输出
array([ 1, 5, 2, 6, 3, 7, 4, 8, 9, 13, 10, 14, 11, 15, 12, 16])