我需要从给定索引切片数组,直到满足特定条件。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