我使用它来遍历numpy矩阵的列:
import numpy as np
A = np.random.randn(4,3)
for c in A.T:
print c.shape # (4L,) => not a real column
c = np.array(c, ndmin=2).T
print c.shape # (4L, 1L) => OK
是否有更好的方法来遍历列,避免在循环内部重新定义,并且避免使用双transpose
:
for c in A.T:
c = np.array(c, ndmin=2).T
?
答案 0 :(得分:1)
您可以转置然后在最右边添加尺寸
A.T[..., None]
或等效地,在最左侧添加一个尺寸,然后转置
A[None].T
无论哪种情况,您都会得到一个(3,4,1,)形状的数组,然后可以对其进行迭代。
您可以在numpy文档https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html
中阅读一般的索引,特别是省略号(“ ...”)。