【发布时间】:2018-09-02 09:11:52
【问题描述】:
我想将a重塑为b,如何快速实现?
基本上,在重塑数组时,如何始终使用每个组中的第一项,然后是第二项,然后是第三项?
输入:
import numpy as np
# 3 repeats, each has 2 variables, each has 4 times
a=np.array([[['r1_v1_t1','r1_v1_t2','r1_v1_t3','r1_v1_t4'],
['r1_v2_t1','r1_v2_t2','r1_v2_t3','r1_v2_t4']],
[['r2_v1_t1','r2_v1_t2','r2_v1_t3','r2_v1_t4'],
['r2_v2_t1','r2_v2_t2','r2_v2_t3','r2_v2_t4']],
[['r3_v1_t1','r3_v1_t2','r3_v1_t3','r3_v1_t4'],
['r3_v2_t1','r3_v2_t2','r3_v2_t3','r3_v2_t4']]
])
# 4 times, each has 3 repeats, each has 2 variables
b=np.array([[['r1_v1_t1','r1_v2_t1'],['r2_v1_t1','r2_v2_t1'],['r3_v1_t1','r3_v2_t1']],
[['r1_v1_t2','r1_v2_t2'],['r2_v1_t2','r2_v2_t2'],['r3_v1_t2','r3_v2_t2']],
[['r1_v1_t3','r1_v2_t3'],['r2_v1_t3','r2_v2_t3'],['r3_v1_t3','r3_v2_t3']],
[['r1_v1_t4','r1_v2_t4'],['r2_v1_t4','r2_v2_t4'],['r3_v1_t4','r3_v2_t4']]])
# 4 times, each has 2 variables, each has 3 repeats
#print(a.T)
#print(np.reshape(a,(4,3,2), order='F')) not work
#print(np.reshape(a,(4,3,2))) not work
【问题讨论】:
-
你不能只做
a.reshape(b.shape, order='F')吗? -
b=a.T转置即可。 -
谢谢!转置有效!抱歉,我实际上是在尝试解决一个更复杂的问题,所以我现在重新编辑了这个问题。
标签: arrays python-3.x numpy multidimensional-array reshape