我有一个读取和输出二维数组的函数。对于输入中等于 0 的每个索引,我希望输出是恒定的(在这种情况下为 pi),否则我会对其执行一些数学运算。例如:
import numpy as np
import numpy.ma as ma
def my_func(x):
mask = ma.where(x==0,x)
# make an array of pi's the same size and shape as the input
y = np.pi * np.ones(x)
# psuedo-code bit I can't figure out
y.not_masked = y**2
return y
my_array = [[0,1,2],[1,0,2],[1,2,0]]
result_array = my_func(my_array)
这应该给我以下信息:
result_array = [[3.14, 1, 4],[1, 3.14, 4], [1, 4, 3.14]]
即它已应用于y**2
二维列表中不等于零的每个元素,并将所有零替换为 pi。
我需要这个,因为我的函数将包括除法,而且我事先不知道索引。我正在尝试将 matlab 教程从教科书转换为 Python,而这个功能让我很困惑!
谢谢