簡體   English   中英

numpy array.A的內置函數A是什么?

[英]What is the built-in function A of numpy array.A?

最近,我讀了一行使我感到困惑的代碼:

pointsInCurrCluster = dataSet[nonzero(clusterAssment[:, 0].A == i)[0], :]  

作者沒有為A定義函數,所以我假設.A是某種內置函數。 有誰知道它是什么?

好的,這樣我就認為它是返回nparray的scipy矩陣的參與者:

In [115]: mtx = sp.matrix([1,2,3])    
In [116]: mtx.A
Out[116]: array([[1, 2, 3]])

AgetA的 getter /捷徑。

https://github.com/skodali1/python-machine-learning/blob/master/kmeansclusteringalgo.py中 (由Google搜索“ python clusterAssment”找到)

from numpy import *
clusterAssment = matrix(zeros((m,2)))
...
ptsInClust = dataSet[nonzero(clusterAssment[:,0].A==cent)[0]]

在這種情況下, clusterAssment是一個numpy.matrix對象。 就像numpy.ndarray ,除了它始終是2d之外,並且具有類似於矩陣運算符的MATLAB。

clusterAssment.A

只是將矩陣轉換為常規的numpy.array ,因此可以將其傳遞給numpy.nonzero

scipy.sparse實現稀疏矩陣,該矩陣也具有此.A屬性。 但是基於此代碼,我認為這不適用於此。

.A表示“將數據類型從矩陣更改為數組”

例如:
在此處輸入圖片說明

因此,在python中,您可以通過編寫如下語句來對數組的每個元素進行條件檢查的結果:arr>3。對於數組arr = [[1,2,3],[3, 4,5]]的輸出將是[[False,False,False],[False,True,True]]。 現在說了,您需要一個數組來執行此操作。 這就是.A在python中所做的事情,它為您提供矩陣的數組表示形式。 現在,clusterAssment [:, 0] .A == i,為您針對值i對每一行和第一列提供條件檢查答案。 nonzero(clusterAssment [:, 0] .A == i)將條件檢查轉換為滿足條件的行和列的索引。 此處有更多詳細信息: nonZero 現在,由於clusterAssment是一個二維數組,因此nonzero(〜)[0]給出了將值i作為第一元素的行,以及dataSet [nonzero(clusterAssment [:, 0] .A == i)[0] ,:]給出數據集中的所有那些元組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM