簡體   English   中英

刪除數組中的最后一個值(使用Numpy)

[英]Deleting last values in array (using Numpy)

我有一個Array[0]len(Array[0]) = 40我想在此數組中刪除最后3個值。

np.delete(Array[0],[36,39])

按預期工作。 然而,

np.delete(Array[0],[len(Array[0])-4,len(Array[0])-1])

僅刪除最后一個數字(而不是最后一個數字)。

np.delete(Array[0],[-3,-1])

什么都不做,給我警告: main :1:FutureWarning:將來numpy.delete不會忽略負面指數。

這樣做的正確方法是什么?

您可以使用range(37, 40)以及axis關鍵字參數來刪除最后三列。 這是一個人為的例子:

In [88]: arr = np.random.random_sample((3, 10))
In [89]: arr.shape
Out[89]: (3, 10)

In [90]: new_arr = np.delete(arr, range(7, 10), axis=1)

In [91]: new_arr.shape
Out[91]: (3, 7)

請注意, numpy.delete()將返回一個新的子數組。 如果你對內存要求很謹慎,你應該像Divakar建議的那樣切片

sliced_arr = Array[0][:-3]

但是在修改切片數組時要小心,因為這是原始數組的視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM