any()我想同時(shí)將該函數(shù)應(yīng)用于矩陣的所有行。如果我使用any()向量,當(dāng)然它會(huì)在任何元素返回時(shí)返回True(或者在我的情況下) :1Trueimport numpy as npprint any(np.array([0,0,0,1]))*1現(xiàn)在假設(shè)我有一個(gè)矩陣。如果我想獲得一個(gè)向量,1并且0取決于矩陣的每個(gè)元素True單獨(dú)使用時(shí)是否會(huì)返回,我可以使用循環(huán)來完成for:matrix=np.array([[0,0,0],[0,0,1],[0,1,0]])result=np.zeros(len(matrix)).astype('int')i=0for line in matrix: result[i]=any(matrix[i]) i+=1 print result不過這個(gè)方法看起來不太實(shí)用,因?yàn)榫仃嚨脑貢?huì)隨著循環(huán)一次處理一次for。有沒有更好的方法擴(kuò)展any到矩陣輸入,使其返回一個(gè)向量,1如上0所示?請(qǐng)注意,我不想使用matrix.any(),因?yàn)樗粫?huì)返回一個(gè)True或False語句,而我希望它應(yīng)用于矩陣的每個(gè)單獨(dú)元素。
2 回答

富國(guó)滬深
TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
numpy.any(matrix, axis=1)
numpy.any
已經(jīng)有你想要的功能。

尚方寶劍之說
TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可以這樣做:
import numpy as np
matrix = np.array([[0, 0, 0], [0, 0, 1], [0, 1, 0]])
matrix_sums = np.sum(matrix, axis=1)
are_truthy_matrix_sums = matrix_sums > 0
print are_truthy_matrix_sums
np.sum在將這些總和與 0 進(jìn)行比較以查看這些行中是否存在任何真實(shí)值之前,我們使用將矩陣簡(jiǎn)化為具有總和的一維數(shù)組。
這打印:
[False True True]
添加回答
舉報(bào)
0/150
提交
取消