有没有一种有效的方法从numpy数组中删除Nones并将数组调整为新的大小?
例如,如果不在python中迭代它,你将如何从这个帧中删除None.我可以轻松地遍历它,但正在进行一次可能被多次调用的api调用.
a = np.array([1,45,23,23,1234,3432,-1232,-34,233,None])
Joh*_*024 25
In [17]: a[a != np.array(None)]
Out[17]: array([1, 45, 23, 23, 1234, 3432, -1232, -34, 233], dtype=object)
上面的工作原因a != np.array(None)是一个布尔数组,它映射出非None值:
In [20]: a != np.array(None)
Out[20]: array([ True,  True,  True,  True,  True,  True,  True,  True,  True, False], dtype=bool)
以这种方式选择数组的元素称为布尔数组索引.
我使用以下内容,我发现它比接受的答案更简单:
a = a[a != None]
警告:PEP8 警告不要对单例使用相等运算符,例如None. 当我发布这个答案时我并不知道这一点。也就是说,对于 numpy 数组,我发现这太 Pythonic 了,而且很值得不使用。请参阅评论中的讨论。
| 归档时间: | 
 | 
| 查看次数: | 11618 次 | 
| 最近记录: |