Python 3.x Python.3-np.where代替For循环
我使用的是python-3.x,我想找到一个标准除法大于0.5的列,然后我想向该列中的每个元素添加一个除法,正如您从下面的代码中看到的,它可以工作,但是当我有一个大数组时,我想使用类似np.where或类似的来代替loob 我试着将np应用到何处,但没有成功Python 3.x Python.3-np.where代替For循环,python-3.x,numpy,for-loop,Python 3.x,Numpy,For Loop,我使用的是python-3.x,我想找到一个标准除法大于0.5的列,然后我想向该列中的每个元素添加一个除法,正如您从下面的代码中看到的,它可以工作,但是当我有一个大数组时,我想使用类似np.where或类似的来代替loob 我试着将np应用到何处,但没有成功 np.where(np.std(population[:,i])>0.5, population+1, population+1) 在这里,它与for循环一起工作: import numpy as np population = n
np.where(np.std(population[:,i])>0.5, population+1, population+1)
在这里,它与for循环一起工作:
import numpy as np
population = np.array(
[[ 290, -231, 399],
[ 0, 181, -226],
[0, 0, 0],
[0, 2000, 386],
[0, 225, 2000]] )
for i in range (len(population.T)):
if np.std(population[:,i]))>0.5:
population[:,i] = population[:,i] + 1
else:
pass
结果:
[[ 290 -230 400]
[ 0 182 -225]
[ 0 1 1]
[ 0 2001 387]
[ 0 226 2001]]
只需执行
population[:,np.std(population,axis=0)>0.5]+=1
。谢谢@Divakar,但问题是它会删除不符合条件的列,我想保留所有列,只是修改符合条件的列如何执行?不,不会删除。这正是我想要的population如果我添加+=1
将说无效语法
,所以我删除了=
谢谢@divakersimply do人口[:,np.std(人口,轴=0)>0.5]+=1
。谢谢@Divakar,但问题是它将删除不符合条件的列,我想保留所有列,只修改符合条件的列如何执行?不,没有删除。这正是我想要的population[:,np.std(population,axis=0)>0.5]=population[:,np.std(人口,axis=0)>0.5]+1
如果我添加+=1
将说无效语法
,因此我删除了=
谢谢@Divakar