[英]How to remove an arry from a list of arrays in python
我使用以下 NumPy 數組創建了一個列表
a=np.arange(1,10,1)
b=np.arange(10,19,1)
c=np.arange(19,28,1)
#a= [1,2,3,4,5,6,7,8,9]
#b = [10,11,12,13, 14,15,16, 17,18]
#c =[19,20,21,22,23,24,25,26,27]
list_array = [a,b,c]
但是,當我嘗試使用 list_array.remove 從列表中刪除任何數組時,出現以下錯誤
list_array.remove(b)
>>ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我的問題是如何從 numpy 數組列表中刪除一個數組?
Python 沒有“where”關鍵字。 您必須先聲明數組,然后聲明數組數組,然后才能輕松刪除。
供您參考,Python 中沒有數組,只有列表,您可以在其中放置您想要的任何類型。 寫a = ["hello", 2, 6.48]
是完全有效的。
a= [1,2,3,
4,5,6,
7,8,9]
b = [10,11,12,
13, 14,15,
16, 17,18]
c =[19,20,21,
22,23,24,
25,26,27]
list_array = [a, b, c]
list_array.remove(b)
print(list_array) #Prints [a, c]
您可以使用np.array_equiv
來測試兩個 numpy 數組是否相等。
您將把它與您自己的循環結合起來以實現remove
的等效項,例如:
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = a+9
c = b+9
list_array = [a,b,c]
for i in range(len(list_array) - 1, -1, -1):
if np.array_equiv(list_array[i], a):
list_array.pop(i)
print(list_array)
如果願意,您可以將for
語句寫為:
for i in reversed(range(len(list_array))):
但重要的是它向后循環索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.