如何对子矩阵使用 np.ix_
how to use np.ix_ for submatrices
我有一个 numpy 形状的 3D 数组 (4, 13, 13),其中 4 行中的每一行都是 13x13 的子矩阵。
如何使用 np.ix_ 对所有行的子数组进行索引?
a = np.zeros((4,13,13))
to_select = np.ix_([0,2], [0,2])
a[:, to_select] # returns the error below
a[to_select] # works without error, but is not accessing what I want
返回的错误是“IndexError: only integers, slices (:
), ellipsis (...
), numpy.newaxis (None
) and integer or boolean arrays是有效索引
有没有办法将 to_select 用于子维度,或者我是否需要变通?
谢谢!
np._ix
returns 每个轴的数组元组而不是 int/bool 数组作为索引,因此它们不能与其他切片方法结合使用。这是一个解决方法,包括 to_select
:
中的所有剩余轴
a = np.zeros((4,13,13))
to_select = np.ix_(range(a.shape[0]), [0,2], [0,2])
print(a[to_select])
输出:
[[[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]]]
我有一个 numpy 形状的 3D 数组 (4, 13, 13),其中 4 行中的每一行都是 13x13 的子矩阵。
如何使用 np.ix_ 对所有行的子数组进行索引?
a = np.zeros((4,13,13))
to_select = np.ix_([0,2], [0,2])
a[:, to_select] # returns the error below
a[to_select] # works without error, but is not accessing what I want
返回的错误是“IndexError: only integers, slices (:
), ellipsis (...
), numpy.newaxis (None
) and integer or boolean arrays是有效索引
有没有办法将 to_select 用于子维度,或者我是否需要变通?
谢谢!
np._ix
returns 每个轴的数组元组而不是 int/bool 数组作为索引,因此它们不能与其他切片方法结合使用。这是一个解决方法,包括 to_select
:
a = np.zeros((4,13,13))
to_select = np.ix_(range(a.shape[0]), [0,2], [0,2])
print(a[to_select])
输出:
[[[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]]
[[0. 0.]
[0. 0.]]]