【发布时间】:2021-12-07 22:32:07
【问题描述】:
我正在尝试将 numpy 3d 数组的程序代码重构为其矢量化等效项,但结果不匹配。
import numpy as np
arr = np.empty((16,73,144))
boolArray = np.zeros((14,73,144))
for k in range(0,16):
for j in range(0,73):
for i in range(0,144):
if (k == 0):
doSomething():
else if (k == 15):
doSomething():
else:
if (arr[k+1,j,i] == arr[k-1,j,i]):
boolArray[k,j,i] = True
矢量化对应物 -
# isArrEqual is a boolean array of identical shape to boolArray
isArrEqual = (arr[2:,:,:] == arr[0:-2,:,:])
在我的真实数据中,我得到了 6000 个程序代码的真实条目,而在矢量化对应物中则完全没有。
我哪里出错了?
【问题讨论】:
-
arr = np.empty(16,73,144)应该是arr = np.empty((16,73,144))。boolArray相同 -
@Corralien 已编辑。感谢您指出错误。
标签: python arrays numpy vectorization