【发布时间】:2019-08-31 20:11:27
【问题描述】:
我使用布尔索引从 numpy 数组中选择元素为
x = y[t<tmax]
其中 t 是一个包含与 y 一样多的元素的 numpy 数组。我的问题是如何对 2D numpy 数组做同样的事情?我试过了
x = y[t<tmax][t<tmax]
但这似乎不起作用,因为它似乎首先选择了行,然后抱怨第二个选择的维度错误。
IndexError: boolean index did not match indexed array along dimension 0; dimension is 50 but corresponding boolean dimension is 200
#
这是一个例子
x1D = np.array([1,2,3], np.int32)
x2D = np.array([[1,2,3],[1,2,3],[1,2,3]], np.int32)
print(x1D[x1D<3]) --> [1 2]
print(x2D[x1D<3][x1D<3]) --> error
第二个 print 语句产生与上面所示错误类似的错误。我用
print(x2D[x1D<3])
我明白了
[[1 2 3]
[1 2 3]]
但我想要
[[1 2]
[1 2]]
【问题讨论】:
-
y[t<tmax]也适用于二维数组。你能用一个样本来说明什么是不工作的吗? -
这里的
t是什么?也是二维数组? -
Python 独立处理每个索引操作
[]。temp[t<tmax]后跟x=temp[t<tmax]。所以每一步都必须自己有意义。