先上代碼,主要語(yǔ)句為np.where(b[c]==1),
import numpy as np b = np.array([[-2,-3,0,0,0,6,4,1],[88,1,0,0,0,6,4,2],[99,6,0,0,1,6,4,2]]) # 三行八列的數(shù)組b print('b\n',b) c = np.array([2,0]) # c表示指定行 print('b[c]\n',b[c]) # b[c]返回 數(shù)組b的指定行 這里依次返回了b的下標(biāo)為2和0的行 print('\n') print(np.where(b[c]==1)) # 返回指定行的指定元素的位置索引 這里返回了b[c]每行中 值為1的位置索引
觀察np.where()的返回值(array([0, 1], dtype=int64), array([4, 7], dtype=int64))可以發(fā)現(xiàn),
對(duì)于數(shù)組b[c]來(lái)說(shuō),其中值為1的位置在[0,4]以及[1,7]上,np.where()返回了一個(gè)元組,[0]的位置表示行索引,[1]表示列索引。
綜上,np.where(b[c]==1)實(shí)現(xiàn)的功能是,從b中按c中元素的順序找到c所指定的行,然后再這些行中發(fā)現(xiàn)值為1的位置。
補(bǔ)充:短小精悍算例:Python如何提取數(shù)組Numpy array中指定元素的位置索引
import numpy as np a = np.array([1, 2, 3, 2, 2, 3, 0, 8, 3]) print(a)
輸出結(jié)果:
[1 2 3 2 2 3 0 8 3]
r1 = np.where(a==3) print(type(r1)) print(r1)
輸出結(jié)果:
class 'tuple'>
(array([2, 5, 8], dtype=int64),)
可見得到的是一個(gè)tuple。
r1 = np.where(a==3) print(type(r1[0])) print(r1[0])
輸出結(jié)果:
class 'numpy.ndarray'>
[2 5 8]
r2 = np.argwhere(a==3) print(type(r2)) print(r2) print(r2.shape)
輸出結(jié)果:
class 'numpy.ndarray'>
[[2]
[5]
[8]]
(3, 1)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
標(biāo)簽:欽州 喀什 臺(tái)灣 宿遷 景德鎮(zhèn) 黃山 三沙 濟(jì)南
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《numpy 實(shí)現(xiàn)返回指定行的指定元素的位置索引》,本文關(guān)鍵詞 numpy,實(shí)現(xiàn),返回,指定,行的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。