numpy中的delete,insert,append函數


delete

numpy.delete(arr,obj,axis=None)
arr:輸入向量
obj:表明哪一個子向量應該被移除。可以為整數或一個int型的向量
axis:表明刪除哪個軸的子向量,若默認,則返回一個被拉平的向量

a = np.array(np.arange(12).reshape(3,4))

a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

np.delete(a,1,0)
array([[ 0,  1,  2,  3],
       [ 8,  9, 10, 11]])

np.delete(a,1,1)
array([[ 0,  2,  3],
       [ 4,  6,  7],
       [ 8, 10, 11]])

np.delete(a,[0,1],1)
array([[ 2,  3],
       [ 6,  7],
       [10, 11]])

np.delete(a,np.s_[::2],1)
array([[ 1,  3],
       [ 5,  7],
       [ 9, 11]])

注意:
numpy.s_[::2]表示選取奇數。

insert

numpy.insert(arr,obj,value,axis=None)
同理,value為插入的數值
arr:為目標向量
obj:為目標位置
value:為想要插入的數值
axis:為插入的維度

np.insert(a,1,[1,1,1,1],0)
Out[309]: 
array([[ 0,  1,  2,  3],
       [ 1,  1,  1,  1],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

append

numpu.append(arr,values,axis=None)
將values插入到目標arr的最后。
注意,這里values跟arr應該為相同維度的向量,例如,如下第一個為錯誤情況。

a
Out[310]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

np.append(a,[1,1,1,1],axis=0)
Traceback (most recent call last):

  File "<ipython-input-311-5585d9489cff>", line 1, in <module>
    np.append(a,[1,1,1,1],axis=0)

  File "D:\Anaconda\lib\site-packages\numpy\lib\function_base.py", line 4586, in append
    return concatenate((arr, values), axis=axis)

ValueError: all the input arrays must have same number of dimensions

正確形式為

a
Out[312]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

np.append(a,[[1,1,1,1]],axis=0)
Out[313]: 
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [ 1,  1,  1,  1]])

轉載自:
作者:開貳錘
來源:CSDN
原文:https://blog.csdn.net/weixin_37895339/article/details/78442555
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM