Python中numpy陣列如何新增和刪除元素?

2021-10-14 11:08:45 字數 4290 閱讀 7569

"line-height: 1.75em;"

>

'font-family: 微軟雅黑, "microsoft yahei";'

<

/span>

<

/p>

對各個引數的說明:

引數 arr 表示輸入的陣列;

values 表示向 arr 陣列新增的元素,values 為陣列,values 陣列列維度與 arr 陣列列維度相同;

axis 表示沿著水平或豎直方向完成新增操作的軸,axis 取 0 表示沿豎直方向操作,axis 取 1 表示沿水平方向操作。

如果未提供 axis 值,在新增操作之前輸入陣列會被展開,values 可以是單元素,也可以是任意陣列,將 values 新增到 arr 陣列後,該函式會返回乙個新陣列,而原陣列不變。

"line-height: 1.75em;"

>

'font-family: 微軟雅黑, "microsoft yahei";'

>

# -*- 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[[

9,10]

,[11,

12]])

)print

('原陣列:'

,arr)

print

('沿軸 0 新增元素:'

)print[[

9,10,

11,12]

,[11,

11,11,

11]], axis=0)

)print

('沿軸 1 新增元素:'

)print[[

9,10]

,[11,

12]], axis=1)

)<

/span>

<

/p>

insert()函式

該函式在給定索引之前,沿給定軸在輸入陣列中插入值。該函式會返回乙個新陣列,原陣列不變。使用 insert() 函式的方法如下:

"line-height: 1.75em;"

>

'font-family: 微軟雅黑, "microsoft yahei";'

>numpy.insert(arr,obj,values,axis)

<

/span>

<

/p>

對各個引數的說明:

引數 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 如下。

"line-height: 1.75em;"

>

'font-family: 微軟雅黑, "microsoft yahei";'

>

# -*- 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)

)<

/span>

<

/p>

delete()函式

該函式返回從輸入陣列中刪除指定子陣列的新陣列,原陣列不變。與 insert() 函式的情況一樣,如果未提供軸引數,則輸入陣列將展開。使用 delete() 函式的方法如下:

"line-height: 1.75em;"

>

'font-family: 微軟雅黑, "microsoft yahei";'

>numpy.delete(arr,obj,axis)

<

/span>

<

/p>

對各個引數的說明:

引數 arr 表示輸入的陣列;

obj 是用整數或者整數陣列表示的從輸入陣列中刪除的子陣列,obj 可以用切片 numpy.s_[start?step] 表示要刪除的子陣列範圍;

axis 表示沿著它刪除給定子陣列的軸,如果未提供 axis 值,則輸入陣列會被展開。

delete() 函式的示例** example3 如下。

"line-height: 1.75em;"

>

'font-family: 微軟雅黑, "microsoft yahei";'

>

# -*- 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]))

<

/span>

<

/p>

Python中numpy陣列切片

python中符合切片並且常用的有 列表,字串,元組。下面那列表來說明,其他的也是一樣的。格式 開頭 結束 步長 開頭 當步長 0時,不寫預設0。當步長 0時,不寫預設 1 結束 當步長 0時,不寫預設列表長度加一。當步長 0時,不寫預設負的列表長度減一 步長 預設1,0 是從左往右走,0是從右往左...

Python中numpy陣列的合併

python中numpy陣列的合併有很多方法,如 np.concatenate np.stack np.hstack np.vstack np.dstack 其中最泛用的是第乙個和第二個。第乙個可讀性好,比較靈活,但是佔記憶體大。第二個則沒有記憶體占用大的問題。parameters introduc...

python中Numpy的陣列建立

numpy的主要物件是同種元素的多維陣列 特點 這是乙個所有元素都是一種型別,通過乙個正整數元組索引的元素 numpy底層是使用c編寫的 import numpy as np arr1 np.array 1,2,3 陣列的秩 軸的個數稱為秩 軸 axes 是陣列的維度 print arr1.ndim...