3 回答

TA貢獻1804條經(jīng)驗 獲得超2個贊
鑒于:
>>> a
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
你可以做:
>>> a[:,0:2]
array([[1, 2],
[4, 5],
[7, 8]])
或者:
>>> np.delete(a,2,1)
array([[1, 2],
[4, 5],
[7, 8]])
然后在任何一種情況下,將其分配回,a因為結(jié)果是一個新數(shù)組。
所以:
>>> a=a[:,0:2]
>>> a
array([[1, 2],
[4, 5],
[7, 8]])
如果您只想刪除3第一行,那就是另一個問題了。如果你有一個 python 列表數(shù)組,你只能這樣做,因為子列表的長度不同。
例子:
>>> a = np.array([[1,2],[4,5,6],[7,8,9]])
>>> a
array([list([1, 2]), list([4, 5, 6]), list([7, 8, 9])], dtype=object)
如果你這樣做,就堅持使用 Python。您將失去 Numpy 的所有速度和其他優(yōu)勢。
如果“通用”是指 N x M 數(shù)組每一行的最后一個元素,只需使用它.shape來查找維度:
>>> a
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
>>> a.shape
(3, 4)
>>> np.delete(a,a.shape[1]-1,1)
array([[ 1, 2, 3],
[ 5, 6, 7],
[ 9, 10, 11]])
或者,
>>> a[:,0:a.shape[1]-1]
array([[ 1, 2, 3],
[ 5, 6, 7],
[ 9, 10, 11]])

TA貢獻1831條經(jīng)驗 獲得超9個贊
>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> type(a)
<class 'numpy.ndarray'>
>>> a.shape
(3, 3)
變量a是矩陣(二維數(shù)組)。它有一定數(shù)量的行和列。在矩陣中,所有行的長度必須相同。因此,在上面的示例中,如果第一行的長度為 2,其他行的長度為 3,則無法形成矩陣。因此,僅刪除第一個(或任何其他子集)子數(shù)組的最后一個元素是不可能的。
相反,您必須同時刪除所有子數(shù)組的最后一個元素。
可以這樣做
>>> a[:,0:2]
array([[1, 2],
[4, 5],
[7, 8]])
或者,
>>> np.delete(a,2,1)
array([[1, 2],
[4, 5],
[7, 8]])
這也適用于其他位置的元素。可以刪除子數(shù)組的任何元素,記住所有子數(shù)組應(yīng)該具有相同的長度。
但是,除非形狀保持不變,否則您可以操作任何子數(shù)組的最后一個元素(或任何其他元素)。
>>> a[0][-1] = 19
>>> a
array([[ 1, 2, 19],
[ 4, 5, 6],
[ 7, 8, 9]])
如果您嘗試形成一個具有不等長行的矩陣,則會形成一個一維列表數(shù)組,在該列表上沒有任何 Numpy 操作(如矢量處理、切片等)起作用(列表操作起作用)
>>> b = np.array([[1,2,3],[1,2,3]])
>>> c = np.array([[1,2],[1,2,3]])
>>> b
array([[1, 2, 3],
[1, 2, 3]])
>>> b.shape
(2, 3)
>>> c
array([list([1, 2]), list([1, 2, 3])], dtype=object)
>>> c.shape
(2,)
>>> print(type(b),type(c))
<class 'numpy.ndarray'> <class 'numpy.ndarray'>
兩者都是 ndarray,但您可以看到第二個變量c是一維列表數(shù)組。
>>> b+b
array([[2, 4, 6],
[2, 4, 6]])
>>> c+c
array([list([1, 2, 1, 2]), list([1, 2, 3, 1, 2, 3])], dtype=object)
類似地, operation 執(zhí)行withb+b的逐元素加法,但執(zhí)行兩個列表之間的連接操作。bbc+c

TA貢獻1796條經(jīng)驗 獲得超7個贊
方法如下:
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
a = a[:-1]
print(a)
輸出:
[[1 2 3]
[4 5 6]]
添加回答
舉報