numpy高階索引

2022-08-14 01:51:12 字數 1504 閱讀 9797

name_arr = np.array(["

bob","

joe","

will

","bob

","joe

","will

","joe"])

rnd_arr = np_random.randn(7,4)

print

(rnd_arr)

print(name_arr == "

bob") #

[ true false false true false false false]

print(rnd_arr[name_arr == "

bob",2]) #

[-0.39080416 0.39002854] 根據布林值進行索引

mask_arr = (name_arr == '

bob') | (name_arr == '

will')

print(mask_arr)#

[ true false true true false true false]

print(rnd_arr[mask_arr])

用陣列索引可以索引多個行或者多個列

for i in range(8):

arr[i] =i

#print(arr)

#print(arr[[4,3,0,6]])

#print(arr[[-3,-5,-7]])

arr = np.arange(32).reshape((8, 4))

print

(arr)

print(arr[[1, 5, 7, 2], [0, 3, 1, 2]]) #

列印arr[1, 0]、arr[5, 3],arr[7, 1]和arr[2, 2]

print(arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]]) #

1572行的0312列

print(arr[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])]) #

可讀性更好的寫法

#

--------陣列轉換

arr = np.arange(15).reshape((3,5))

print

(arr)

print

(arr.t)

print(np.dot(arr,arr.t)) #

矩陣乘法

#高維陣列轉換

a = np.arange(16).reshape((2,2,4))

#根據維度轉換

# tanspose 維度本是0,1,2,3順序往下排,我們可用transpose改變順序

# 例如2,2,4 變為 4,2,2

print(a)

print(a.shape)

print(a.transpose((2,0,1)))

print(a.transpose((2,0,1)).shape)

Numpy陣列索引與切片 高階索引

有一些numpy中索引結果時候不太理解的地方,以後可以多多熟悉,熟悉後加以運用。import numpy as np a np.array 1,2,3 3,4,5 4,5,6 print a 1 第2列元素 print a 1,第2行元素 print a 1 第2列及剩下的所有元素整數陣列的索引 以...

Numpy攻略系列 高階索引機制

所謂高階索引就是不使用整數或者切片作為索引值,在這一節重點介紹三類高階索引 常規的高階索引,位置列表型高階索引,布林型高階索引的一類。給定乙個矩陣,我們要求相關位置設定為特殊值,這裡我們就假定設定為0,高階索引不用通過一一按位置修改元素值。我們的任務將對角線上面元素置為0,索引用了兩個列表來代替了位...

深入了解NumPy 高階索引

更多程式設計教程請到 菜鳥教程 numpy 比一般的 python 序列提供更多的索引方式。除了之前看到的用整數和切片的索引外,陣列可以由整數陣列索引 布林索引及花式索引。整數陣列索引 以下例項獲取陣列中 0,0 1,1 和 2,0 位置處的元素。import numpy as np x np.ar...