name_arr = np.array(["bob","
joe","
will
","bob
","joe
","will
","joe"])
rnd_arr = np_random.randn(7,4)
(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))
(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))
(arr)
(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...