我在numpy中有一个92x92x1数组,对于该数组中的每个值,如果该值大于122,则应将其转换为255,否则应将其转换为0。 >
new_array=[]
for i in arr:
column=[]
for j in i:
if j>122:
temp=255
else:
temp=0
column.append(j)
new_array.append(column)
new_array=np.resize(np.array(new_array),(92,92,1))
,但是必须有一种更快,更优雅,更pythonic的方式来做到这一点!还有其他方法可以将这些类型的函数映射到3D数组吗?
答案 0 :(得分:3)
NumPy支持向量化操作,因此您不需要for循环。您可以使用布尔索引,它将适用于所有尺寸。
import numpy as np
arr = np.random.randint(0, 255, (92, 92, 1))
arr[arr >= 122] = 255
arr[arr < 122] = 0