好吧,如果我们希望选择某些值保持不变,并在numpy数组中将其他值设置为零,我们可以 A = A == 1 如果A只有4个唯一数0,1,2,3。但是,如果我想选择N个不同的值,比如 A = np.where(A==1 or A==2, A) 但这不起作用,并且这些条件并不是仅对于2个值是必需的。我该如何实现这个想法呢?
在Matlab中,大量使用内置的逻辑索引和掩码机制是很自然的。例如,(1) idx = (A == 2)创建一个与A大小相同的逻辑数组,标识所有等于2的元素,以及(2) C = B(idx)从B中取出所有相应的元素,假设A和B的大小相同。在Matlab中,使用逻辑掩码比以数值方式提取索引更有效。我刚刚开始学习Python,它做任何事情都不一样。与标准Python3中的(1)和(2)最接近的等价物是什么(不安装NumPy等)?
在执行矢量化赋值时,我在matlab中遇到了一些意想不到的行为,我无法理解这些行为:The logical indices contain a true value outside of the array bounds.
为什么命令q(q==[1,3,4,5,7,8])会导致错误,而命令q(q==[1,3,4,5,7,8])=1却可以工作?它是如何将4 0 1作为输出的呢?