import numpy as np
def get_positions(values, mintreshold=0.1):
maxindex = 0
result_row = np.zeros(np.shape((0, 0)), dtype=int)
result = np.matrix(result_row)
result_index = 0
for index in xrange(len(values)):
diff = values[maxindex] - values[index]
if diff < 0:
maxindex = index
elif diff >= mintreshold:
result[result_index, 1] = index
result = np.vstack((result, result_row))
result_index += 1
return result
我有一個函數,就像你看到的,給我給定列表的位置。簡單地過濾它。 所以我知道numpy.matrix
不應該這樣調用,這不能成爲創建numpy.matrix
的正確方法。但對於那些條件控制變量,如minindex
和maxindex
,我不能使用map
,lambda
或filter
。用python中的條件控制變量過濾數組以創建numpy矩陣
通過填充控制變量以功能方式創建numpy.matrix
的正確方法是什麼?
編輯: 只要我想用類似positions = map(get_positions, values)
我敢打賭,有一種簡單的方法可以用'np.where'和'np.argmax' /'values.max()'完成你想要的任務。可能類似'np.where(values-values.max()> = max_threshold)'。 – wflynny
你能展示一個示例輸入並期望輸出嗎? – wflynny
我刪除了minindex值來清除。 用這種方法我想得到最高點差異矩陣到最新的最低點。例如。 'print get_positions([1,2,1,2,3,1])'prints' [[0 2] [0 5] [0 0]]' – Alkimake