是否有一种有效的方法可以从numpy数组中删除Nones并将数组的大小调整为新的大小?
例如,如果不在python中迭代它,如何从此帧中删除None。我可以轻松地遍历它,但正在进行一次可能被多次调用的api调用。
a = np.array([1,45,23,23,1234,3432,-1232,-34,233,None])
答案 0 :(得分:22)
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)
以这种方式选择数组元素称为boolean array indexing。
答案 1 :(得分:2)
我使用以下内容比接受的答案更简单:
a = a[a != None]