2017-10-10 47 views
0

我看到一些碼是這樣的:短碼和符號在python

K = np.array([B[z==i].mean(axis=0) for i in range(k)]) 

B是2D陣列(矩陣)和z是一維數組(矢量)。

我想知道什麼B[z==i]手段?

+0

它的索引'以Z == I'的'結果B'。 –

+0

但'ž== i'將返回布爾值 – Sanket

+0

但z是一維數組,怎麼能'ž==我'? –

回答

0

B[z==i]你有兩種類型的操作。

首先,鑑於B[i] for i in range(k)你這是在這樣的情況下,這樣做是在列表值迭代。

在你的情況下,你有z==i這是對象之間的比較。 在python中,要比較的對象不需要具有相同的類型,但是如果類型不同,它們總是返回False

的比較是如何工作的一個小總結:

號進行算術比較。

使用數字等效字符 (字符的內置函數ord())的結果按字典順序對字符串進行比較。 Unicode和8位字符串在此行爲中完全可互操作。

元組和列表正在使用的 對應元件相比,比較字典順序。這意味着,爲比較相等,每個元件 必須比較相等,並且兩個序列必須是相同的類型和 具有相同的長度。

如果不相等,則序列是有序的與它們的第一 不同的元件。例如,cmp([1,2,x],[1,2,y])返回與cmp(x,y)相同的 。如果相應元素不存在,則首先排序較短的序列(例如[1,2] < [1,2,3])。

當且僅當它們排序的 (鍵值)列表相等時,映射(字典)的值相等。5.3除了相等之外的結果是 一致解決,但沒有另外定義。

大多數其他類型的比較不平等,除非它們是同一個對象;所述 選擇一個對象是否被認爲比另一個 一個 程序的一次執行中被任意地但始終如一地更小或更大。

這個文件是有點老,但你可以有大約有比較詳細信息:source