第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何刪除子數(shù)組的末尾元素?

如何刪除子數(shù)組的末尾元素?

陪伴而非守候 2023-02-07 09:29:14
所以我創(chuàng)建了一個 numpy 數(shù)組:import numpy as np a = np.array([[1,2,3],[4,5,6],[7,8,9]])我正在嘗試刪除此數(shù)組子數(shù)組的末尾元素:a[0] = (a[0])[:-1]并遇到這個問題:a[0] = (a[0])[:-1] ValueError: 無法將輸入數(shù)組從形狀 (2) 廣播到形狀 (3)為什么我不能改變它?我該怎么做?
查看完整描述

3 回答

?
慕婉清6462132

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]])


查看完整回答
反對 回復(fù) 2023-02-07
?
天涯盡頭無女友

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


查看完整回答
反對 回復(fù) 2023-02-07
?
蕪湖不蕪

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]]


查看完整回答
反對 回復(fù) 2023-02-07
  • 3 回答
  • 0 關(guān)注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號