2015-06-19 63 views
0

我要寫一個函數,它需要3個參數:矩陣1,矩陣2和數字p。函數輸出矩陣1和矩陣2之間的差值大於p的條目數。我被指示不要使用循環。查找滿足矩陣中某些內容的值的數量,而不使用循環。 Python

我被建議使用X.sum()函數,其中X是一個ndarray。

我不知道該怎麼做。

我想要做的第一件事就是從M1中減去M2。現在我有條目,其中一條或者不大於p。

我試圖找到一種方法給我們總和功能,但我恐怕看不出它如何幫助我。

我唯一能想到的就是通過條目,我不允許這樣做。我很感謝你在這方面的幫助。 也不允許遞歸。

+1

請重新格式化您的問題,讓一些換行符/空格有助於提高可讀性。此外,代碼(如'X.sub()')在反引號之間會更好('\'') – Wolph

+1

這是一個邏輯問題嗎?因爲它聽起來像一個。 – honi

+1

如果矩陣1和2只是單個整數,你會怎麼做?如果你使用'if',你會如何避免? (請注意,布爾值可以直接轉換爲整數。)一旦您知道如何處理單個數字,請參閱是否可以廣播整個陣列使用的操作。 – user2357112

回答

1
import pandas as pd 
# Pick value of P 
p = 20 
# Instantiate fake frames 
a = pd.DataFrame({'foo':[4, 10], 'bar':[34, -12]}) 
b = pd.DataFrame({'foo':[64, 0], 'bar':[21, 354]}) 
# Get absolute value of difference 
c = (b - a).applymap(abs) 
# Boolean slice, then sum along each axis to get total number of "True"s 
c.applymap(lambda x: x > p).sum().sum() 
相關問題