【问题标题】:Excluding values in array - python排除数组中的值 - python
【发布时间】:2018-04-23 05:09:28
【问题描述】:

好的,所以我在 python 中有一个数组。该数组保存另一个数组的索引。我从这个数组中删除了我想保留的索引。

stations = [1,2,3]

让我们调用x 主数组。它有 5 列,我删除了第 1 列和第 5 列,并将其余部分放入名为 stations 的数组中。

我希望能够创建一个 if 语句,其中排除来自站的值。所以我只是想找出站数组中的索引为 0 而其他索引(0 和 4)不为 0 的实例数(天数)。

我该怎么做呢?到目前为止我有这个,但它似乎不正确。

for j in range(len(x)):
    if  x[j,0] != 0 and x[j,4] != 0 and numpy.where(x[j,stations[0]:stations[len(stations)-1]]) == 0:
        days += 1
return days

【问题讨论】:

    标签: python arrays numpy boolean where


    【解决方案1】:

    我认为您的问题陈述不是很清楚,但是如果您希望 x cols 排除站中包含的索引,请执行此操作。

    excluded_station_x = [col for i, col in enumerate(x) if i not in stations]
    

    这是一个列表推导式,它是一种通过遍历可迭代对象来构建新列表的方法。和写作一样

    excluded_station_x = []
    for i, col in enumerate(x):
      if i not in stations:
        excluded_station_x.append(col)
    

    enumerate() 在我们遍历列表时产生每个元素的值和索引。

    根据要求,我将不枚举。 您也可以只删除每个坏索引,尽管我不喜欢这样做,因为它会改变原始列表。

    for i in stations:
      del x[i]
    

    【讨论】:

    • 你想让这更容易吗?不知道 enumerate 和 col 是什么?
    • 当然,我添加了一些注释。 col 就是我在遍历列表时所说的元素的值。
    • 有没有办法在不枚举的情况下做到这一点?我知道这是有道理的,但我不应该使用它。
    • 新编辑是否回答了您的问题?我还是不太明白原文。最后几句话令人困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多