Python 如何避免使用循环构建numpy阵列。代码清理建议
我正在编写一些代码来生成一些模拟数据,但我知道如何构建这些数据的唯一方法是使用循环,理想情况下我希望避免这种情况 到目前为止,我的代码是这样的。 基本上,我需要对我的2d数组中的每一行应用一些不同的缩放,我目前正在使用循环Python 如何避免使用循环构建numpy阵列。代码清理建议,python,loops,numpy,Python,Loops,Numpy,我正在编写一些代码来生成一些模拟数据,但我知道如何构建这些数据的唯一方法是使用循环,理想情况下我希望避免这种情况 到目前为止,我的代码是这样的。 基本上,我需要对我的2d数组中的每一行应用一些不同的缩放,我目前正在使用循环 n_echelle = 70 n_obs_echelle = 20 px_echelle1 = np.random.uniform(0, 2048, size(n_echelle,n_obs_echelle)) theta_values = [] for i i
n_echelle = 70
n_obs_echelle = 20
px_echelle1 = np.random.uniform(0, 2048, size(n_echelle,n_obs_echelle))
theta_values = []
for i in range(0,n_echelle):
theta = np.array([-0.03**(0.5+(i/300)),10000-180*i**(0.92)])
theta_values.append(theta)
theta_values = np.asarray(theta_values)
wl_echelle1 = []
for i in range(0,n_echelle):
d = np.polyval(theta_values[i], px_echelle1[i])
wl_echelle1.append(d)
wl_echelle1 = np.asarray(wl_echelle1)
后来我不得不做相反的事情,我在循环中做这一切似乎很荒谬
theta_values_reverse = []
for i in range(0,n_echelle):
theta_reverse = np.array([-0.03**-(0.5+(i/300)),(0.03**-(0.5+i/300))*(10000-180*i**(0.92))])
theta_values_reverse.append(theta_reverse)
theta_values_reverse = np.asarray(theta_values_reverse)
px_echelle2 = []
for i in range(0,n_echelle):
d = np.polyval(theta_values_reverse[i], wl_echelle1[i])
px_echelle2.append(d)
px_echelle2 = np.asarray(px_echelle2)
欢迎任何反馈/建议。谢谢我希望这对你有所帮助
n_echelle = 70
n_obs_echelle = 20
px_echelle1 = np.random.uniform(0, 2048, size(n_echelle,n_obs_echelle))
wl_echelle1 = np.zeros(n_echelle)
i=np.arange(n_echelle)
theta_values = np.array([-0.03**(0.5+(i/300)),10000-180*i**(0.92)])
for ii in range(0,n_echelle):
wl_echelle1[ii] = np.polyval(theta_values[:,ii], wl_echelle1[ii])
这将为θ值创建一个2x70数组。
我不熟悉polyval命令,我也不确定除了循环之外还有其他孤子。如果你发现什么,请告诉我我不确定征求意见是否适合问答网站。这不是一个讨论论坛,当你问问题的时候,你可以选择询问建议