Numpy非常自然地进行元素操作。不过,在编写函数时,我通常也想知道元素的位置,例如:
def neighbor_count(arr, row, col):
hood = arr[row-1:row+1, col-1, col+1]
return np.sum(hood)-arr[row,col]
我可以创建一个嵌套for循环:
for (i, row) in enumerate(arr[1:-1]):
for (j, col) in enumerate (row[1:-1]):
c = neighbor_count(arr, i+1, j+1)
但那感觉就像是放弃了,回到了我在c++中的工作方式。你知道吗
有什么灵丹妙药吗?你知道吗
您需要^{} ,它的工作原理与
enumerate
类似,但用于ndarray
结构。你知道吗我不能对您的特定用例提供一个确切的答案,因为还不完全清楚您是如何组合结果值的,但基本思想是这样的。你知道吗
请注意,
ndenumerate
返回一个迭代器,因此您使用的所有itertools
功能都应该使用它。你知道吗相关问题 更多 >
编程相关推荐