我需要從給定索引切片數組,直到滿足特定條件。Python - 切片數組,直到滿足某些條件
>>> a = numpy.zeros((10), dtype='|S1')
>>> a[2] = 'A'
>>> a[4] = 'X'
>>> a[8] = 'B'
>>> a
array(['', '', 'A', '', 'X', '', '', '', 'B', ''], dtype='|S1')
例如,對於上述陣列我想從一個給定的索引,直到在兩個方向上的第一非零值的子集。例如,對於指數值2,4,8箇中的結果將是:
['', '', A, ''] # 2
['', X, '', '', ''] # 4
['', '', '', B, ''] # 8
上做到這一點最簡單的方法使用numpy的API有什麼建議?學習python和numpy,將不勝感激任何幫助。謝謝!
你能澄清你的問題嗎?你是什麼意思「直到第一個非None值在兩個方向」? – 2011-03-07 05:55:42
當您嘗試確定非無數組項目的索引時,使用'object'數組(不是很常見,也不是非常有效的內存)的事實在嘗試確定非無數組項目的索引時會出現一個特殊問題。你能說服使用固定字節的dtype嗎?如果你致力於'object' dtype,那麼當類型爲'bool'時,任何「non-None」都會評估爲「True」嗎?這兩者都可以幫助簡化很多事情。 – Paul 2011-03-07 06:04:13
@Paul我正在使用'object'數組來存儲單個字符串。從本質上講,我需要的只是一個'char'數組。有沒有另一種'dtype'我可以使用'dtype'? – armandino 2011-03-07 06:15:31