我有3D numpy阵列。你知道吗
import numpy as np
X = np.arange(12).reshape(2, 2, 3)
print(X)
[[[ 0 1 2]
[ 3 4 5]]
[[ 6 7 8]
[ 9 10 11]]]
我想矢量化的所有二维阵列在三维阵列以下。例如,对于第一个2D阵列:
ss = np.array(np.meshgrid(*X[0]), dtype=object).T.reshape(-1,2)
print(ss)
[[0 3]
[0 4]
[0 5]
[1 3]
[1 4]
[1 5]
[2 3]
[2 4]
[2 5]]
我试着做到:
def f(x):
return np.array(np.meshgrid(*x), dtype=object).T.reshape(-1,2)
ff = np.apply_along_axis(f, 0, X)
print(ff)
这是实现这一目标的一种方法:
这里有一个通用的解决方案,它使用一个循环并缩放到通用形状。它分配到一个初始化的数组中,并广播以复制值,从而提高内存效率。它适用于沿
X
第二轴的任何长度。因此,实施将是——样本运行
第1种情况:
length=2
的第二个轴第二种情况:
length=3
的第二个轴相关问题 更多 >
编程相关推荐