[英]Numpy delete() is deleting different arrays with same elements from 2D array
我有一個二維 numpy 數組,如B = [[1. 0.], [0. 1.], [3. 1.]]
B = [[1. 0.], [0. 1.], [3. 1.]]
B = [[1. 0.], [0. 1.], [3. 1.]]
我想刪除[0. 1.]
[0. 1.]
,但是當我這樣做時:
B = np.delete(B, [0, 1], 0)
print(B)
兩者[1. 0.], [0. 1.]
[1. 0.], [0. 1.]
[1. 0.], [0. 1.]
被刪除,我只剩下[[3. 1.]]
因此我想delete()
不能識別具有相同元素的不同 arrays 。 我能做些什么?
您要求 delete() 通過詢問 [0,1] 作為參數來刪除第一個和第二個索引。 第二個參數是要從中刪除值的索引。 你應該試試:
np.delete(B, 1, 0)
np.delete(arr, idx)
刪除idx
中指定位置的元素
所以
B = np.delete(B, [0, 1], 0)
正在刪除位置 0 和 1 的元素,即您提到的元素[1. 0.]
[1. 0.]
和[1. 0.]
[1. 0.]
因此,要從 2D 數組中刪除特定數組,您需要知道要刪除的元素的索引。 你可以像這樣做一個丑陋的襯里
B = np.delete(B, np.where((B==[0,1]).all(1)), 0)
按值刪除:
B = np.array([[1., 0.], [0., 1.], [3., 1.]])
value = [3,1]
1)保留其他所有內容(推薦):
B[(value!=B).any(1)]
# array([[1., 0.],
# [0., 1.]])
2)使用delete
:
np.delete(B,np.where((value==B).all(1)),0)
# array([[1., 0.],
# [0., 1.]])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.