這篇文章將為大家詳細講解有關Python中numpy數組添加和刪除元素的示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
在 numpy中,經常需要對數組元素進行添加和刪除操作,如使用 append() 函數和 insert() 函數為數組添加元素,或者使用 delete() 函數返回刪除了某個軸的子數組的新數組,以及使用 unique() 函數尋找數組內的唯一元素。下面分別介紹這些函數的運用。
append()函數
該函數是在數組的末尾添加元素,該函數會返回一個新數組,而原數組不變。使用 append()函 數的方法如下:
numpy.append(arr,values,axis)
對各個參數的說明:
參數 arr 表示輸入的數組;
values 表示向 arr 數組添加的元素,values 為數組,values 數組列維度與 arr 數組列維度相同;
axis 表示沿著水平或豎直方向完成添加操作的軸,axis 取 0 表示沿豎直方向操作,axis 取 1 表示沿水平方向操作。
如果未提供 axis 值,在添加操作之前輸入數組會被展開,values 可以是單元素,也可以是任意數組,將 values 添加到 arr 數組后,該函數會返回一個新數組,而原數組不變。
append() 函數的示例代碼 example1 如下。
# -*- coding: UTF-8 -*- import numpy as np #創建數組arr arr = np.array([[1,2,3,4],[5,6,7,8]]) print('第1個數組arr:',arr) print('向arr數組添加元素:') print(np.append(arr,[[9,10],[11,12]])) print('原數組:',arr) print('沿軸 0 添加元素:') print(np.append(arr,[[9,10,11,12],[11,11,11,11]], axis=0)) print('沿軸 1 添加元素:') print(np.append(arr,[[9,10],[11,12]], axis=1))
insert()函數
該函數在給定索引之前,沿給定軸在輸入數組中插入值。該函數會返回一個新數組,原數組不變。使用 insert() 函數的方法如下:
numpy.insert(arr,obj,values,axis)
對各個參數的說明:
參數 arr 表示輸入的數組;
obj 表示在其之前插入值的索引;
values 表示向arr數組插入的值,values值可為單元素或values數組,并且 values 數組行維度與arr數組列維度相同;
axis 表示沿著水平或豎直方向完成插入操作的軸,axis 取 0 表示沿豎直方向操作,即在 arr 數組行索引位于 obj 的位置處插入 values 值,axis 取 1 表示沿水平方向操作,即在 arr 數組列索引位于 obj 的位置處插入 values 值。
如果未提供 axis 值,在插入之前輸入數組會被展開,values 可以是單個元素,也可以是一維數組,將 values 插入到 obj 的位置處,該函數會返回一個新數組,原數組不變。
另外,insert() 函數如果傳遞了 axis 參數,則插入 values 值時,會以廣播值數組來配輸入數組,即 np.insert(arr,2,[9],axis=0),其中 values 為 [9],arr 是 2 行 4 列數組,由于 axis=0,則插入值的數組列維度與arr數組列維度相同,因此,插入值數組為 1 行 4 列的數組,也就是廣播值數組 [9,9,9,9]。
insert() 函數的示例代碼 example2 如下。
# -*- coding: UTF-8 -*- import numpy as np #創建數組arr arr = np.array([[1,2,3,4], [5,6,7,8]]) print('第1個數組arr:',arr) print('未傳遞axis參數。在插入之前輸入數組會被展開。') print(np.insert(arr,4,[9, 10,11,12])) print('傳遞了axis參數,會以廣播值數組來配輸入數組。') print('沿軸 0 廣播:') print(np.insert(arr, 2, [9], axis=0)) #插入值是[9,9,9,9] print('沿軸 0 插入:') print(np.insert(arr, 2, [9,10,11,12], axis=0)) print('沿軸 1 廣播:') print(np.insert(arr, 2, [[9],[10]], axis=1)) print('沿軸 1 插入:') print(np.insert(arr, 2, [[9,10],[11,12]], axis=1))
delete()函數
該函數返回從輸入數組中刪除指定子數組的新數組,原數組不變。與 insert() 函數的情況一樣,如果未提供軸參數,則輸入數組將展開。使用 delete() 函數的方法如下:
numpy.delete(arr,obj,axis)
對各個參數的說明:
參數 arr 表示輸入的數組;
obj 是用整數或者整數數組表示的從輸入數組中刪除的子數組,obj 可以用切片 numpy.s_[start:end:step] 表示要刪除的子數組范圍;
axis 表示沿著它刪除給定子數組的軸,如果未提供 axis 值,則輸入數組會被展開。
delete() 函數的示例代碼 example3 如下。
# -*- coding: UTF-8 -*- import numpy as np #創建數組arr arr = np.arange(16).reshape(4,4) print('第1個數組arr:',arr) print ('未傳遞 axis 參數,在刪除之前輸入數組會被展開。') print (np.delete(arr,[6,9,12])) #刪除arr數組中索引為6,9,12的元素 print(arr) print('刪除第3列:') print(np.delete(arr, 2, axis=1)) print('刪除第2行:') print(np.delete(arr, 1, axis=0)) print('從數組中刪除用切片表示元素范圍值:') print(np.delete(arr, np.s_[::2]))
關于Python中numpy數組添加和刪除元素的示例就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。