我想将形状(m,n,l)的3d数组转换为形状(m * n,l)的2d数组,如下所示:
- name: Extract files from discovered zip file
unarchive:
src: "{{ base_path }}/weblogic-deployment/environments/{{ client_environment }}/discovered_domain.zip"
dest: "{{ base_path }}/weblogic-deployment/environments/{{ client_environment }}/tmp"
exclude:
- ./wlsdeploy/applications/
remote_src: yes
到
A = [[[1, 2],[3, 4]], [[5, 6],[7, 8]]]
对于范围(l)中的每个i,我都使用
B = [[1, 3, 2, 4], [5, 7, 6, 8]]
有效。但是,当我使用reshape(A[i, :, :], (1, -1), order='F')
时,会出现以下错误。
signal.hilbert(B)
我想知道是否存在不使用 order ='F'来重塑矩阵的另一种方法。
谢谢。
答案 0 :(得分:3)
您显示的重塑形状是从(l, m, n)
到(l, m * n)
,而不是(l * m, n)
。您可以通过交换最后两个轴来模拟F阶,同时保持C阶:
B = np.swapaxes(A, -2, -1).reshape(A.shape[0], -1)
请注意,这将复制您的数据,因为交换后数组将不再连续。
答案 1 :(得分:0)
这会回答您的问题吗?
import numpy as np
A = np.array([[[1, 2],[3, 4]], [[5, 6],[7, 8]]])
B = A.T.reshape(-1, A.shape[2]).T