Numpy 數(shù)組操作之元素添加、刪除和修改的實(shí)現(xiàn)
數(shù)組元素添加、刪除和修改
數(shù)組也是一個(gè)可變類型,可以對(duì)數(shù)組中的元素進(jìn)行添加、刪除和修改,本文詳細(xì)介紹了對(duì)數(shù)組元素的添加和刪除的操作,以及這兩種操作的方法均已列出。數(shù)組元素的修改操作簡(jiǎn)單,只要對(duì)索引和切片掌握,使用索引和切片獲取到元素后賦值就可以實(shí)現(xiàn)。
添加元素
numpy.append()
| 方法 | 說(shuō)明 |
|---|---|
| numpy.append() | 數(shù)組追加元素 |
| numpy.insert() | 數(shù)組插入元素 |
在數(shù)組末尾追加元素。
numpy.append(arr, values, axis=None)
參數(shù)說(shuō)明:
- arr:接收array_like,需要添加元素的數(shù)組。
- values:接收array_like,追加到末尾的元素,形狀必須匹配。arr和values的維度必須相等才能追加
- axis:接收int,如果未給定軸,則arr和values在使用前都會(huì)被展平。
返回值:
- ndarray,arr的副本。
示例:
# 創(chuàng)建數(shù)組a >>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], ? ? ? ?[4, 5, 6]]) # 創(chuàng)建數(shù)組b ? ? ?? >>> b = np.arange(7,10).reshape(1,3) # a,b維度相同才能追加 >>> b ? array([[7, 8, 9]])?
注意:數(shù)組(arr)和追加值(values)的維度必須相同才可以追擊,否則會(huì)報(bào)錯(cuò):
ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)
不指定軸向時(shí),生成副本,將數(shù)組a,b都展平后進(jìn)行追加。
# 將數(shù)組b追加到數(shù)組a后 >>> np.append(a, values=b) # 不指定axis時(shí) array([ 1, 2, 3, 4, 5, 6, 7, 8, 9])
指定軸向時(shí),根據(jù)軸向追加,但是形狀必須匹配,指定軸向?yàn)樾凶芳訒r(shí)列數(shù)必須相等,指定軸向?yàn)榱凶芳訒r(shí),行數(shù)必須相等。
>>> np.append(a, values=b, axis=0) # 根據(jù)行追加
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9]])
指定軸向時(shí),指定軸向?yàn)榱袝r(shí),行數(shù)不相同,形狀不匹配,無(wú)法追加,會(huì)報(bào)ValueError錯(cuò)!
>>> np.append(a, values=b, axis=1)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1
numpy.insert()
給定的軸向和指定的索引位置插入值。
numpy.insert(arr, obj, values, axis=None)
參數(shù)說(shuō)明:
- arr:接收array_like,輸入的數(shù)組。
- obj:接收整數(shù)或者整數(shù)序列,索引位置。
- values:接收array_like,需要插入數(shù)組的值,需要考慮形狀。
- axis:接收整數(shù),軸向。如果未給定軸向數(shù)組會(huì)被展平。
返回值:
- ndarray,插入值后的副本。
示例:
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> b = np.ones(shape=(2,1))
>>> b
array([[1.],
[1.]])
# 向數(shù)組a的行方向,索引為2的行插入數(shù)組b,會(huì)自動(dòng)補(bǔ)全
>>> np.insert(a, 2, b, axis=0)
array([[1, 2, 3],
[4, 5, 6],
[1, 1, 1],
[1, 1, 1]])
# 向數(shù)組a的列方向,索引為2的列插入數(shù)組b
>>> np.insert(a, 2, b, axis=1)
array([[1, 2, 1, 1, 3],
[4, 5, 1, 1, 6]])刪除元素
| 方法 | 說(shuō)明 |
|---|---|
| numpy.delete() | 刪掉某個(gè)軸的子數(shù)組,并返回刪除后的新數(shù)組 |
numpy.delete()
返回一個(gè)沿軸刪除了子數(shù)組的新數(shù)組。
numpy.delete(arr, obj, axis=None)
參數(shù)說(shuō)明:
- arr:接收array_like,輸入數(shù)組。
- obj:接收索引、切片,或者整數(shù)構(gòu)成的數(shù)組。
- axis:接收整數(shù),軸向
返回值:
- ndarray,刪除元素后的數(shù)組,是副本。
示例:
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
[4, 5, 6]])
# 軸向?yàn)榱?,刪除索引為2的列
>>> np.delete(a, 2, axis=1)
array([[1, 2],
[4, 5]])
對(duì)數(shù)據(jù)進(jìn)行操作時(shí)形狀非常重要,如果形狀不匹配會(huì)引發(fā)報(bào)錯(cuò),需要對(duì)報(bào)錯(cuò)的類型了解,才能在出問(wèn)題后及時(shí)找到原因。除此以外,軸向也是非常重要的,二維數(shù)組中:axis=0表示行,axis=1表示列,這個(gè)概念非常容易混淆。
元素修改
使用索引切片獲取到該位置的元素后使用"="為該位置重新賦值即可。
語(yǔ)法:數(shù)組名[索引]=值 或 數(shù)組名[切片]=值
示例:
>>> a = np.arange(1,7).reshape(2,3)
>>> a
array([[1, 2, 3],
[4, 5, 6]])
# 使用索引獲取到該位置后重新賦值即可修改元素
>>> a[0, 1] = 100
>>> a
array([[ 1, 100, 3],
[ 4, 5, 6]])
到此這篇關(guān)于Numpy 數(shù)組操作之元素添加、刪除和修改的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Numpy 數(shù)組操作 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python學(xué)習(xí)之不同數(shù)據(jù)類型間的轉(zhuǎn)換總結(jié)
類型轉(zhuǎn)換,就是將自身的數(shù)據(jù)類型變成新的數(shù)據(jù)類型,并擁有新的數(shù)據(jù)類型的所有功能的過(guò)程。本文將詳細(xì)為大家介紹如何在Python中實(shí)現(xiàn)不同數(shù)據(jù)類型的轉(zhuǎn)換,感興趣的可以了解一下2022-03-03
Python進(jìn)階學(xué)習(xí)之特殊方法實(shí)例詳析
一般說(shuō)來(lái),特殊的方法都被用來(lái)模仿某個(gè)行為。下面這篇文章主要給大家介紹了關(guān)于Python進(jìn)階學(xué)習(xí)之特殊方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起看看吧。2017-12-12
python實(shí)現(xiàn)電腦自動(dòng)關(guān)機(jī)
這篇文章主要為大家詳細(xì)介紹了如何利用python實(shí)現(xiàn)電腦自動(dòng)關(guān)機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
PyCharm 2020.1版安裝破解注冊(cè)碼永久激活(激活到2089年)
這篇文章主要介紹了PyCharm 2020.1版安裝破解注冊(cè)碼永久激活(激活到2089年),需要的朋友可以參考下2020-09-09
python 普通克里金(Kriging)法的實(shí)現(xiàn)
這篇文章主要介紹了python 普通克里金(Kriging)法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Python自動(dòng)操作神器PyAutoGUI的使用教程
這篇文章主要是想和大家來(lái)聊一聊Python如何利用自動(dòng)操作 GUI 神器——PyAutoGUI在桌面實(shí)現(xiàn)自動(dòng)化操作,感興趣的小伙伴可以了解一下2022-06-06
python matplotlib繪圖實(shí)現(xiàn)刪除重復(fù)冗余圖例的操作
這篇文章主要介紹了python matplotlib繪圖實(shí)現(xiàn)刪除重復(fù)冗余圖例的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
Python安裝配置OpenGL環(huán)境的全過(guò)程記錄
這篇文章主要給大家介紹了關(guān)于Python安裝配置OpenGL環(huán)境的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

