Matlab的数组索引逻辑 - Python等价

时间:2015-11-15 21:37:16

标签: python indexing mask

在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中是否有一个简单的等效操作? 我没找到。

1 个答案:

答案 0 :(得分:1)

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