首页 > 解决方案 > NP where 和 if 语句条件

问题描述

我目前在理解与 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 并没有真正列出真正的问题,它们是我要附加的数组。所以我只是要把他们的名字改成 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 的原因是因为我听说它比像列表一样添加它们要慢。如果我错了,请解释。

它只是附加一个列表。如果你不能这样做并且它需要是一个函数,它可以是 np.append 或 np.concatenate。

如果不适用,那么一切都结束了,我一直在想完全错误的方式,我只是在寻找一种更有效(更快)的 if 语句的 numpy 方式。

有人可以朝正确的方向射击我吗?

标签: python-2.7numpyif-statementnumpy-ndarray

解决方案


推荐阅读