用于数组索引的 Matlab 逻辑 - Python 等效

Matlab's Logicals for Array Indexing - Python Equivalent

在 MATLAB 中有一种屏蔽类型的逻辑操作,如下所示:

A=randn(1,10)  % vector with 10 random values

% logical mask indexing:
A(A<0)=NaN     % setting values smaller than 0 to NaN

有Python中这么简单的等价操作吗? 我没找到。

import random
a = [random.random() - 0.5 for _ in range (10)]
a = [None if i < 0 else i for i in a]

如果您使用的是长数组(并且如果您正在做类似 MATLAB 的东西),您可能需要考虑 numpy,因为它会更有效率。

import numpy as np
a = np.random.rand(10) - 0.5
a[a<0] = np.NaN