Numpy array陣列的操作

2021-09-21 01:27:12 字數 2077 閱讀 5983

布林索引

# 建立乙個隨機整數陣列

arr2 = np.random.randint(0,

50,20)

# 列印結果

array([17

,42,35

,3,38

,1,34

,12,24

,39,30

,33,46

,0,30

,0,32

,28,16

,0])

# 獲取布林索引

arr2%2==

0# 列印結果

array(

[false

,true

,false

,false

,true

,false

,true

,true

,true

,false

,true

,false

,true

,true

,true

,true

,true

,true

,true

,true])

# 通過布林索引獲取需要的元素陣列

arr2[arr2%2==

0] array([42

,38,34

,12,24

,30,46

,0,30

,0,32

,28,16

,0])

對比列表list,如下:
m =[1

,2,3

,5]m%

2==0輸出結果:

typeerror traceback (most recent call last)

input-58

-738d9db1a292

>

in1 m =[1

,2,3

,5]-

--->

2 m%2==

0typeerror: unsupported operand type

(s)for%:

'list'

and'int'

總結,列表是不支援「布林索引」的,而numpy 中的 array 是支援「布林索引的」
陣列形式的索引

# 建立陣列

arr3 = np.array([0

,1,2

,0,3

,4,0

,5,6

,0])

# 得到乙個下標陣列

indexs = np.nonzero(arr3)

indexs

# 輸出結果

(array([1

,2,4

,5,7

,8])

,)# 根據索引陣列獲取元素

arr3[indexs]

array([1

,2,3

,4,5

,6])

對比列表list,如下:
#建立乙個列表

list1 =[1

,2,3

,4,5

]# 根據索引陣列獲取元素

list1[1,

2,4]

#輸出結果:

typeerror traceback (most recent call last)

input-63

-8fa735770a63

>

in1 list1 =[1

,2,3

,4,5

]---

->

2 list1[[1

,2,3

]]typeerror:

list indices must be integers or slices,

notlist

總結,列表是不支援「陣列索引」的,而numpy 中的 array 是支援「陣列索引的」

如何找出numpy array陣列中的不同元素

例如在 array 陣列 1,2,3,3,5 5,9,18,100,2 中找出裡面的不同元素 第一步就是把這個array陣列用flatten鋪平為 1,2,3,3,5,5,9,18,100,2 第二步就是用.tolist 進行轉列表 第三步就是用set list 進行不同元素的提取了 import ...

numpy array軸的理解

最近的學習中,發現可以把軸看成是維度,特地分享給大家,方便理解numpy的陣列運算。如a np.arange 8 reshape 2,4 0 1 2 3 4 5 6 7 此時軸0對應 2,4 中的2,軸1對應 2,4 中的4。用乙個numpy中的函式來檢驗這個想法 numpy.swapaxes 函式...

numpy array多維度的理解

import numpy as np u1 np.array 0 0 0 0 0 0 0 0 0 0 u2 np.array 0 0 0 0 0 0 0 0 0 0 u5 np.dstack u1,u2 u4 np.hstack u1,u2 u3 np.vstack u1,u2 print u1.s...