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,否則報錯:ValueError: arrays must have same number of dimensions
補充對axis的理解
- axis的最大值為數(shù)組arr的維數(shù)-1,如arr維數(shù)等于1,axis最大值為0;arr維數(shù)等于2,axis最大值為1,以此類推。
- 當arr的維數(shù)為2(理解為單通道圖),axis=0表示沿著行增長方向添加values;axis=1表示沿著列增長方向添加values
- 當arr的維數(shù)為3(理解為多通道圖),axis=0,axis=1時同上;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不同,則報錯:
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ù)處理時,使用np.append()容易導致內(nèi)存分配錯誤和性能上的瓶頸問題。而且每次使用np.append()時都會生成新的數(shù)組,這很容易導致數(shù)組拷貝,從而增加運行成本和內(nèi)存占用。為了解決這個問題,我們可以使用其他的數(shù)據(jù)處理方式,如預分配數(shù)組、拼接數(shù)組等。
2. np.append函數(shù)typeerror
np.append()函數(shù)只能用于numpy數(shù)組,當向它傳遞非數(shù)組參數(shù)時,它會報錯。這是因為np.append()實際上是對numpy數(shù)組進行操作的,所以只能接收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多項式擬合之np.polyfit 和 np.polyld詳解
- Numpy中np.max的用法及np.maximum區(qū)別
- 關(guān)于numpy中np.nonzero()函數(shù)用法的詳解
- Python中np.linalg.norm()用法實例總結(jié)
- python numpy之np.random的隨機數(shù)函數(shù)使用介紹
- python中使用np.delete()的實例方法
- python定間隔取點(np.linspace)的實現(xiàn)
- Pandas實現(xiàn)dataframe和np.array的相互轉(zhuǎn)換
相關(guān)文章
macOS M1(AppleSilicon) 安裝TensorFlow環(huán)境
蘋果為M1芯片的Mac提供了TensorFlow的支持,本文主要介紹了如何給使用M1芯片的macOS安裝TensorFlow的環(huán)境,感興趣的可以了解一下2021-08-08Python使用psutil對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控
psutil庫可以實時獲取系統(tǒng)的一些信息,這樣就可以達到實時監(jiān)控系統(tǒng)的目的。本文對詳細講解了ython使用psutil對系統(tǒng)數(shù)據(jù)進行采集監(jiān)控,感興趣的朋友可以看一看2021-08-08python中字符串比較使用is、==和cmp()總結(jié)
在Python中比較字符串最好是使用簡單邏輯操作符,今天為大家講解一下is、==和cmp()使用總結(jié)2018-03-03Python使用POP3和SMTP協(xié)議收發(fā)郵件的示例代碼
這篇文章主要介紹了Python使用POP3和SMTP協(xié)議收發(fā)郵件的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04python圖的深度優(yōu)先和廣度優(yōu)先算法實例分析
這篇文章主要介紹了python圖的深度優(yōu)先和廣度優(yōu)先算法,結(jié)合實例形式分析了圖的深度優(yōu)先算法與廣度優(yōu)先算法相關(guān)概念、原理、實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下2019-10-10