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