常常需要找到乙個列表中或者陣列中最小的值並返回索引,經常用,經常忘,害。
list1 =[1
,2,3
,2,1
]print
(list1.index(
max(a)))
#結果:2
list2 =[1
,2,3
,4]print
(list2.index(
min(b)))
#結果:0
其中返回最大值 直接使用max即可。
1、直接用陣列形式進行輸入
>>
> arr1 = np.array([1
,2,3
,4])
>>
> np.
max(arr1)
4>>
> np.argmax(arr1)
3
argmax()的輸入直接是乙個陣列,直接返回最大值的索引,最小值索引argmin。
其中獲得最大值:max(arr,axis = none)
>>
> arr = np.arange(9)
.reshape((3
,3))
>>
> arr
array([[
0,1,
2],[
3,4,
5],[
6,7,
8]])
>>
> np.
max(arr)
# 獲得全域性最大值
8>>
> np.
max(arr, axis =1)
# 按行取得最大值
array([2
,5,8
])>>
> np.
max(arr, axis =0)
# 按列取得最大值
array([6
,7,8
])
然後用where也能得到最大值的索引,返回值中,前面的array對應行數,後者對應列數
>>
>
print
(np.where(a==np.
max(arr)))
(array([2
], dtype=int64)
, array([2
], dtype=int64)
)#表示最大值在第二行第二列
>>
>
print
(np.where(arr==np.
max(arr,axis=0)
))(array([2
,2,2
], dtype=int64)
, array([0
,1,2
], dtype=int64)
)# 表示最大值分別在第二行第零列,第二行第一列,第二行第二列
如果array中有相同的最大值,where會將其位置全部給出
>>
> arr[0,
0]=8
>>
> arr[0,
2]=8
>>
> arr
array([[
8,1,
8],[
3,4,
5],[
6,7,
8]])
>>
>
print
(np.where (arr==np.
max(arr)))
(array([0
,0,2
], dtype=int64)
, array([0
,2,2
], dtype=int64)
)
2、可以先將陣列轉換為list,再用list的方法進行獲取。
>>
> arr1 = np.array([1
,2,3
,4])
>>
>list1 = arr1.tolist(
)>>
> np.argmax(arr1)
3>>
> list1.index(
max(list1)
)3
又是需要通過兩個陣列其中乙個排序通過序列索引對另乙個陣列進行排序
np.lexsort(a,b): 通過對b從小到大排序的索引對a在進行排序
>>
> list2 =[3
,4,2
,1]>>
> arr2 = np.array(
(np.arange(
len(list2)
),list2)).t
>>
> arr2
array([[
0,3]
,[1,
4],[
2,2]
,[3,
1]])
>>
> list2[3
,4,2
,1]>>
> index = np.lexsort(
(arr2[:,
0],arr2[:,
1]))
# 通過對arr2[:1]j進行排序返回索引
>>
> index
array([3
,2,0
,1], dtype=int64)
>>
> arr2[index]
# 完成對arr2[:1]進行排序,同時對應的arr[:,0]相應進行改變
array([[
3,1]
,[2,
2],[
0,3]
,[1,
4]])
python獲得list或numpy陣列中最大元素對應的索引 列表和陣列的區別
python列表和numpy陣列的區別 numpy使用ndarray物件來處理多維陣列,該物件是乙個快速而靈活的大資料容器。使用python列表可以儲存一維陣列,通過列表的巢狀可以實現多維陣列,那麼為什麼還需要使用numpy呢?numpy是專門針對陣列的操作和運算進行了設計,所以陣列的儲存效率和輸入...
列表和陣列的使用區別
都可以根據索引來取其中的元素 列表中資料型別可以不同,陣列中資料型別相同列表不可以進行科 算,陣列可以 import numpy as np list 1,2,3,4 list是列表型別 a np.array 1 2,3 4 a是陣列型別 list和array都可以根據索引來操作 print lis...
2 列表和陣列
從0開始指出相對於序列開頭的偏移量。這顯得更自然,同時可迴繞到序列末尾,用負索引表示序列末尾元素的位置。禁止修改序列通常出於技術方面的考慮,與python的內部工作原理相關,這也是有些內建函式返回元組的原因所在。如果函式呼叫返回乙個序列,可直接對其執行索引操作。fourth input year 3...