Python是目前最為流行的編程語言之一,它的使用範圍非常廣泛,包括科學計算、數據分析、機器學習等多個領域。在眾多的Python庫中,numpy(Numerical Python)庫是非常常用的一個庫,它提供了高效的數組和矩陣計算功能。
在numpy庫中,np.append是一個非常常用的函數,它可以用來在數組末尾添加元素。但是,對於新手來說,np.append的使用也可能會遇到一些問題,接下來我們將詳細介紹np.append的用法。
一、np.append的基本用法
np.append(array, values, axis=None)
np.append函數有三個參數,其中array和values是必填參數,axis是可選參數。
array:表示要添加元素的數組。
values:表示要添加到原數組末尾的元素。可以是單個元素或另一個數組。
axis:表示要擴展的軸。在默認情況下,np.append會將數組展開成一個一維數組,如果指定了軸,那麼在特定軸上添加元素。
下面是一個簡單的示例:
import numpy as np
a = np.array([1, 2, 3])
b = np.append(a, [4, 5, 6])
print(b)
運行結果為:
[1 2 3 4 5 6]
從結果可以看出,我們成功地將[4, 5, 6]添加到了a數組的末尾。
二、np.append的常用用法
1.在二維數組中添加元素
對於二維數組,我們可以使用np.vstack或np.hstack函數將多個數組堆疊在一起,其中np.vstack是按垂直方向(行順序)堆疊,np.hstack是按水平方向(列順序)堆疊。在這種情況下,我們通常使用np.vstack或np.hstack來添加元素,而不是使用np.append。
下面是使用np.vstack添加行的示例:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9]])
c = np.vstack((a, b))
print(c)
運行結果為:
[[1 2 3]
[4 5 6]
[7 8 9]]
注意,當我們添加一行時,需要將添加的數組放在元組中。
下面是使用np.hstack添加列的示例:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5], [6]])
c = np.hstack((a, b))
print(c)
運行結果為:
[[1 2 5]
[3 4 6]]
同樣地,在添加一列時需要將添加的數組放在元組中。
2.在多維數組中添加元素
對於超過二維的數組,我們需要指定添加元素的軸,否則將會將數組展開成一維數組再進行添加。
下面是一個三維數組的示例:
import numpy as np
a = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
b = np.array([[[13, 14, 15], [16, 17, 18]]])
c = np.append(a, b, axis=0)
print(c)
運行結果為:
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]
[[13 14 15]
[16 17 18]]]
從結果可以看出,我們成功地將b數組添加到了a數組的末尾。要注意的是,我們通過axis參數指定了在哪個軸上添加元素。
三、np.append的注意事項
1.會創建一個新數組
調用np.append函數時,會創建一個新的數組,並在其上添加元素。因此,如果需要在原數組上添加元素,應該使用原地操作函數。
2.效率較低
由於np.append會創建一個新數組,因此效率較低。如果需要在循環中多次添加元素,請使用Python列表。
下面是一個在Python列表中添加元素的示例:
lst = [1, 2, 3]
lst.append(4)
print(lst)
運行結果為:
[1, 2, 3, 4]
3.盡量使用numpy數組的切片
對於數組的切片,numpy數組要比Python列表效率要高得多。因此,盡量使用numpy數組的切片來操作數組。
總結
本文詳細介紹了np.append函數的用法,從基本用法到常見用法都進行了詳細的講解。np.append是一個很有用的函數,但是需要注意其效率較低這一點,在實際應用中需要根據情況進行選擇。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/206239.html