我想向量化一组 2x2 数组的创建, 所以我写了下面的代码
import numpy as np
# an array of parameters
a = np.array(( 1.0, 10.0, 100.0))
# create a set of 2x2 matrices
b = np.array((( 1*a, 2*a), ( 3*a, 4*a)))
# to access the 2x2 matrix, I can do as follows
for i in range(3):
print(i,"\n",b[:,:,i])
其输出是
0 [[ 1. 2.] [ 3. 4.]] 1 [[ 10. 20.] [ 30. 40.]] 2 [[ 100. 200.] [ 300. 400.]]
到目前为止,一切都很好,但我真正想要的是用不同的方式创建 b
方式,这样我就可以简单地引用 2x2 矩阵
b = ...
# this code doesn't work!
for i in range(3):
print(i,"\n",b[i])
提前致谢,
克
最佳答案
参见numpy.transpose
;举个例子:
>>> b.transpose(2, 0, 1)
array([[[ 1., 2.],
[ 3., 4.]],
[[ 10., 20.],
[ 30., 40.]],
[[ 100., 200.],
[ 300., 400.]]])
>>> b.transpose(2, 0, 1)[0]
array([[ 1., 2.],
[ 3., 4.]])
关于python - 在 numpy 中创建方阵的 3D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25866506/