numpy中np.append()函數用法小結
函數np.append(arr, values, axis=None)
作用:
為原始array添加一些values
參數:
- arr:需要被添加values的數組
- values:添加到數組arr中的值(array_like,類數組)
- axis:可選參數,如果axis沒有給出,那么arr,values都將先展平成一維數組。注:如果axis被指定了,那么arr和values需要同為一維數組或者有相同的shape,否則報錯:ValueError: arrays must have same number of dimensions
補充對axis的理解
- axis的最大值為數組arr的維數-1,如arr維數等于1,axis最大值為0;arr維數等于2,axis最大值為1,以此類推。
- 當arr的維數為2(理解為單通道圖),axis=0表示沿著行增長方向添加values;axis=1表示沿著列增長方向添加values
- 當arr的維數為3(理解為多通道圖),axis=0,axis=1時同上;axis=2表示沿著圖像深度增長方向添加values
返回:
添加了values的新數組
e.g.
1. 不考慮axis
arr,values都將先展平成一維數組,然后沿著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))
輸出結果如下:
[1 2 3 4 5]
[1 2 3 6 7 8 9]
2. 考慮axis,arr,values同為一維數組或兩者shape相同
import numpy as np a = [1, 2, 3] b = [4, 5] c = [[6, 7], [8, 9]] d = [[10, 11], [12, 13]] print('在一維數組a后添加values,結果如下:\n{}'.format(np.append(a, b, axis=0))) print('沿二維數組c的行增長方向添加values結果如下:\n{}'.format(np.append(c, d, axis=0))) print('沿二維數組c的列增長方向添加values結果如下:\n{}'.format(np.append(c, d, axis=1)))
結果如下:
在一維數組a后添加values,結果如下:
[1 2 3 4 5]
沿二維數組c的行增長方向添加values結果如下:
[[ 6 7]
[ 8 9]
[10 11]
[12 13]]
沿二維數組c的列增長方向添加values結果如下:
[[ 6 7 10 11]
[ 8 9 12 13]]
3. 考慮axis,如果arr和values不同為一維數組且shape不同,則報錯:
import numpy as np a = [1, 2, 3] c = [[6, 7], [8, 9]] print(np.append(a, c, axis=0))
輸出結果如下:
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太慢了
在大量數據處理時,使用np.append()容易導致內存分配錯誤和性能上的瓶頸問題。而且每次使用np.append()時都會生成新的數組,這很容易導致數組拷貝,從而增加運行成本和內存占用。為了解決這個問題,我們可以使用其他的數據處理方式,如預分配數組、拼接數組等。
2. np.append函數typeerror
np.append()函數只能用于numpy數組,當向它傳遞非數組參數時,它會報錯。這是因為np.append()實際上是對numpy數組進行操作的,所以只能接收numpy數組作為參數。
到此這篇關于numpy中np.append()函數用法小結的文章就介紹到這了,更多相關numpy np.append() 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- np.dot()函數的用法詳解
- python中numpy.zeros(np.zeros)的使用方法
- Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解
- python多項式擬合之np.polyfit 和 np.polyld詳解
- Numpy中np.max的用法及np.maximum區(qū)別
- 關于numpy中np.nonzero()函數用法的詳解
- Python中np.linalg.norm()用法實例總結
- python numpy之np.random的隨機數函數使用介紹
- python中使用np.delete()的實例方法
- python定間隔取點(np.linspace)的實現
- Pandas實現dataframe和np.array的相互轉換
相關文章
macOS M1(AppleSilicon) 安裝TensorFlow環(huán)境
蘋果為M1芯片的Mac提供了TensorFlow的支持,本文主要介紹了如何給使用M1芯片的macOS安裝TensorFlow的環(huán)境,感興趣的可以了解一下2021-08-08Python使用psutil對系統(tǒng)數據進行采集監(jiān)控
psutil庫可以實時獲取系統(tǒng)的一些信息,這樣就可以達到實時監(jiān)控系統(tǒng)的目的。本文對詳細講解了ython使用psutil對系統(tǒng)數據進行采集監(jiān)控,感興趣的朋友可以看一看2021-08-08Python使用POP3和SMTP協議收發(fā)郵件的示例代碼
這篇文章主要介紹了Python使用POP3和SMTP協議收發(fā)郵件的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04python圖的深度優(yōu)先和廣度優(yōu)先算法實例分析
這篇文章主要介紹了python圖的深度優(yōu)先和廣度優(yōu)先算法,結合實例形式分析了圖的深度優(yōu)先算法與廣度優(yōu)先算法相關概念、原理、實現技巧與操作注意事項,需要的朋友可以參考下2019-10-10