【发布时间】:2014-10-20 12:34:37
【问题描述】:
我有一个由布尔组成的列表列表,比如说l = [[False, False], [True, False]],我需要将l 转换为布尔数组的numpy 数组。我将每个子列表转换为布尔数组,并将整个列表也转换为 numpy 数组。我当前的真实列表有 121 个子列表,np.any() 的结果仅抛出 5 个结果,而不是预期的 121 个。我的代码是这样的:
>>> result = np.array([ np.array(extracted[aindices[i]:aindices[i + 1]]) for i in range(len(aux_regions)) ])
>>> np.any(result)
[false, false, false, false, false]
extracted[aindices[i]:aindices[i + 1]] 是我转换为布尔数组的子列表。整行生成的列表也转换为数组。
在第一个示例中 l 的预期结果是,对于每个子数组(假设列表已转换)应该是 [False, True]
使用 np.any 有什么问题?还是转换后的列表的数据类型不正确?
【问题讨论】:
-
为什么你想要一个数组而不是二维数组或数组列表?数组数组往往会导致混乱——你在它上面广播的任何东西通常都会将每个子数组视为一个 Python 对象,而不是 numpily 做任何事情。
-
@abarnet 确切地说,我应该使用哪种转换来让 numpy.any() 按预期工作?
标签: python arrays numpy boolean