'numpy.ndarray' 对象没有属性 'remove'
'numpy.ndarray' object has no attribute 'remove'
我有一个数组数组,我试图在所有数组中找到最低的非零值。
minima = []
for array in K: #where K is my array of arrays (all floats)
if 0.0 in array:
array.remove(0.0)
minima.append(min(array))
print min(minima)
这产生
AttributeError: 'numpy.ndarray' object has no attribute 'remove'
我认为 array.remove()
是删除元素的方法。我做错了什么?
看起来像你 want .delete:
minima = []
for array in K: #where K is my array of arrays (all floats)
minimum = min(array)
minima = np.delete(array, minimum)
minima.append(min(array))
print(minima)
它似乎对我有用,因此:
In [5]: a = np.array([1,3,5])
In [6]: a = np.delete(a, 0)
In [7]: a
Out[7]: array([3, 5])
我想我已经明白了。
.remove()
方法是列表方法,不是 ndarray 方法。
因此,通过使用 array.tolist()
,我可以应用 .remove()
方法并获得所需的结果。
只需将其转换为列表即可:
my_list = list(array)
然后您可以从那里获取所有 list
方法。
这并没有像措辞那样直接解决您的问题,而是浓缩了另一个 answers/comments 中提出的一些观点。
下面演示了如何有效地从 NumPy 数组中删除值 0.0。
>>> import numpy as np
>>> arr = np.array([0.1, 0.2, 0.0, 1.0, 0.0]) # NOTE: Works if more than one value == 0.0
>>> arr
array([0.1, 0.2, 0. , 1. , 0. ])
>>> indices = np.where(arr==0.0)
>>> arr = np.delete(arr, indices)
>>> arr
array([0.1, 0.2, 1. ])
另一个有用的方法是numpy.unique(),"Returns the sorted unique elements of an array.":
>>> import numpy as np
>>> arr = np.array([0.1, 0.2, 0.0, 1.0, 0.0])
>>> arr = np.unique(arr)
>>> arr
array([0. , 0.1, 0.2, 1. ])
我有一个数组数组,我试图在所有数组中找到最低的非零值。
minima = []
for array in K: #where K is my array of arrays (all floats)
if 0.0 in array:
array.remove(0.0)
minima.append(min(array))
print min(minima)
这产生
AttributeError: 'numpy.ndarray' object has no attribute 'remove'
我认为 array.remove()
是删除元素的方法。我做错了什么?
看起来像你 want .delete:
minima = []
for array in K: #where K is my array of arrays (all floats)
minimum = min(array)
minima = np.delete(array, minimum)
minima.append(min(array))
print(minima)
它似乎对我有用,因此:
In [5]: a = np.array([1,3,5])
In [6]: a = np.delete(a, 0)
In [7]: a
Out[7]: array([3, 5])
我想我已经明白了。
.remove()
方法是列表方法,不是 ndarray 方法。
因此,通过使用 array.tolist()
,我可以应用 .remove()
方法并获得所需的结果。
只需将其转换为列表即可:
my_list = list(array)
然后您可以从那里获取所有 list
方法。
这并没有像措辞那样直接解决您的问题,而是浓缩了另一个 answers/comments 中提出的一些观点。
下面演示了如何有效地从 NumPy 数组中删除值 0.0。
>>> import numpy as np
>>> arr = np.array([0.1, 0.2, 0.0, 1.0, 0.0]) # NOTE: Works if more than one value == 0.0
>>> arr
array([0.1, 0.2, 0. , 1. , 0. ])
>>> indices = np.where(arr==0.0)
>>> arr = np.delete(arr, indices)
>>> arr
array([0.1, 0.2, 1. ])
另一个有用的方法是numpy.unique(),"Returns the sorted unique elements of an array.":
>>> import numpy as np
>>> arr = np.array([0.1, 0.2, 0.0, 1.0, 0.0])
>>> arr = np.unique(arr)
>>> arr
array([0. , 0.1, 0.2, 1. ])