numpy中np.append()函數(shù)用法小結(jié)
函數(shù)np.append(arr, values, axis=None)
作用:
為原始array添加一些values
參數(shù):
- arr:需要被添加values的數(shù)組
- values:添加到數(shù)組arr中的值(array_like,類數(shù)組)
- axis:可選參數(shù),如果axis沒有給出,那么arr,values都將先展平成一維數(shù)組。注:如果axis被指定了,那么arr和values需要同為一維數(shù)組或者有相同的shape,否則報(bào)錯(cuò):ValueError: arrays must have same number of dimensions
補(bǔ)充對axis的理解
- axis的最大值為數(shù)組arr的維數(shù)-1,如arr維數(shù)等于1,axis最大值為0;arr維數(shù)等于2,axis最大值為1,以此類推。
- 當(dāng)arr的維數(shù)為2(理解為單通道圖),axis=0表示沿著行增長方向添加values;axis=1表示沿著列增長方向添加values
- 當(dāng)arr的維數(shù)為3(理解為多通道圖),axis=0,axis=1時(shí)同上;axis=2表示沿著圖像深度增長方向添加values
返回:
添加了values的新數(shù)組
e.g.
1. 不考慮axis
arr,values都將先展平成一維數(shù)組,然后沿著axis=0的方向在arr后添加values
import numpy as np a = [1, 2, 3] b = [4, 5] c = [[6, 7], [8, 9]] print(np.append(a, b)) print(np.append(a, c))
輸出結(jié)果如下:
[1 2 3 4 5]
[1 2 3 6 7 8 9]
2. 考慮axis,arr,values同為一維數(shù)組或兩者shape相同
import numpy as np
a = [1, 2, 3]
b = [4, 5]
c = [[6, 7], [8, 9]]
d = [[10, 11], [12, 13]]
print('在一維數(shù)組a后添加values,結(jié)果如下:\n{}'.format(np.append(a, b, axis=0)))
print('沿二維數(shù)組c的行增長方向添加values結(jié)果如下:\n{}'.format(np.append(c, d, axis=0)))
print('沿二維數(shù)組c的列增長方向添加values結(jié)果如下:\n{}'.format(np.append(c, d, axis=1)))
結(jié)果如下:
在一維數(shù)組a后添加values,結(jié)果如下:
[1 2 3 4 5]
沿二維數(shù)組c的行增長方向添加values結(jié)果如下:
[[ 6 7]
[ 8 9]
[10 11]
[12 13]]
沿二維數(shù)組c的列增長方向添加values結(jié)果如下:
[[ 6 7 10 11]
[ 8 9 12 13]]
3. 考慮axis,如果arr和values不同為一維數(shù)組且shape不同,則報(bào)錯(cuò):
import numpy as np a = [1, 2, 3] c = [[6, 7], [8, 9]] print(np.append(a, c, axis=0))
輸出結(jié)果如下:
Traceback (most recent call last):
File "F:\eclipse-workspace\test\t1.py", line 4, in <module>
print(np.append(a,c,axis=0))
File "E:\anaconda\anzhuang\lib\site-packages\numpy\lib\function_base.py", line 4694, in append
return concatenate((arr, values), axis=axis)
ValueError: all the input arrays must have same number of dimensions
np.append存在的一些問題
1. np.append太慢了
在大量數(shù)據(jù)處理時(shí),使用np.append()容易導(dǎo)致內(nèi)存分配錯(cuò)誤和性能上的瓶頸問題。而且每次使用np.append()時(shí)都會(huì)生成新的數(shù)組,這很容易導(dǎo)致數(shù)組拷貝,從而增加運(yùn)行成本和內(nèi)存占用。為了解決這個(gè)問題,我們可以使用其他的數(shù)據(jù)處理方式,如預(yù)分配數(shù)組、拼接數(shù)組等。
2. np.append函數(shù)typeerror
np.append()函數(shù)只能用于numpy數(shù)組,當(dāng)向它傳遞非數(shù)組參數(shù)時(shí),它會(huì)報(bào)錯(cuò)。這是因?yàn)閚p.append()實(shí)際上是對numpy數(shù)組進(jìn)行操作的,所以只能接收numpy數(shù)組作為參數(shù)。
到此這篇關(guān)于numpy中np.append()函數(shù)用法小結(jié)的文章就介紹到這了,更多相關(guān)numpy np.append() 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- np.dot()函數(shù)的用法詳解
- python中numpy.zeros(np.zeros)的使用方法
- Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解
- python多項(xiàng)式擬合之np.polyfit 和 np.polyld詳解
- Numpy中np.max的用法及np.maximum區(qū)別
- 關(guān)于numpy中np.nonzero()函數(shù)用法的詳解
- Python中np.linalg.norm()用法實(shí)例總結(jié)
- python numpy之np.random的隨機(jī)數(shù)函數(shù)使用介紹
- python中使用np.delete()的實(shí)例方法
- python定間隔取點(diǎn)(np.linspace)的實(shí)現(xiàn)
- Pandas實(shí)現(xiàn)dataframe和np.array的相互轉(zhuǎn)換
相關(guān)文章
python用requests實(shí)現(xiàn)http請求代碼實(shí)例
這篇文章主要介紹了python用requests實(shí)現(xiàn)http請求過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
解決Python httpx 運(yùn)行過程中無限阻塞的問題
這篇文章主要介紹了解決Python httpx 運(yùn)行過程中無限阻塞的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
Django框架之中間件MiddleWare的實(shí)現(xiàn)
這篇文章主要介紹了Django框架之中間件MiddleWare的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Tornado實(shí)現(xiàn)多進(jìn)程/多線程的HTTP服務(wù)詳解
這篇文章主要介紹了Tornado實(shí)現(xiàn)多進(jìn)程/多線程的HTTP服務(wù)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值2019-07-07
打印出python 當(dāng)前全局變量和入口參數(shù)的所有屬性
打印出python 當(dāng)前全局變量和入口參數(shù)的所有屬性的實(shí)現(xiàn)代碼。2009-07-07
Python實(shí)現(xiàn)XML文件解析的示例代碼
本篇文章主要介紹了Python實(shí)現(xiàn)XML文件解析的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02
Python中列表乘法和列表推導(dǎo)式的區(qū)別舉例詳解
在Python中列表是一種非常靈活和強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),支持多種運(yùn)算和操作,這篇文章主要介紹了Python中列表乘法和列表推導(dǎo)式區(qū)別的相關(guān)資料,文中通過代碼就介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04

