我目前在理解与if语句有关的np.where时遇到问题。 (https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.where.html)我听说它效率更高。我试图对np.where函数有一个更好的了解,但是我还没有找到任何清楚的例子。这是我真正要转换的if语句,有人可以协助吗?转换时,您可以给出更多条件示例。如果np.where可能不是解决方案,那么numpy条件语句会更好地工作。
为了更好地解释true_list和flat_list arent确实列出了实际问题,它们是我要附加的数组。所以我只是将其名称更改为true_arr和flat_arr。
这里有更多代码:
combo = list(element)
flat_arr = np.concatenate(combo) #changes array dimensions to what I need
sum_flat_arr=flat_arr.sum(axis=0)
salary = sum_flat_arr[2]
values = sum_flat_arr[3]
if salary <= 5000 and values > 150:
true_arr = true_arr + flat_arr
true_arr只是一个空的numpy数组(不确定什么是处理它的最佳方法,以用空的行和列的数量预填充它,或者将其完全空白并追加))
flat_arr只是一个完整的数组,看起来像:
Out:
[['Johnny Tsunami' 'Driver' 1000 39]
['Snow White' 'Pistol' 2000 40]
['Michael B. Jackson' 'Pistol' 2500 46]
['Greg Ritcher' 'Lookout' 200 25]]
本质上是命名工作薪水和价值,而不是数据框,我试图在Numpy中做所有事情以提高速度。我不使用np.concatenate的原因是因为我听说它慢于像list这样添加它们。如果我错了,请解释。
它只是附加一个列表。如果您无法通过这种方式执行操作,而它必须是一个函数,则可能是np.append或np.concatenate。
如果所有这些都不适用,那一切就结束了。我一直在想完全错误的方式,我只是在寻找一种麻木的方式来使if语句更有效(更快)。
有人可以朝着正确的方向射击我吗?