【问题标题】:numpy slicing the matrix based condition on the column pythonnumpy在python列上对基于矩阵的条件进行切片
【发布时间】:2021-06-16 05:23:32
【问题描述】:
X = np.arange(1, 26).reshape(5, 5)
X[:,1:2] % 2 == 0

条件应仅应用于第二列 我想要条件为真的整个矩阵像

[array([[False,  True, False,  False, False],
       [ False, False,  False, False,  False],
       [False,  True, False,  False, False],
       [ False, False,  False, False,  False],
       [False,  True, False,  False, False]])]

它给出了错误 IndexError:布尔索引与维度 1 上的索引数组不匹配;维度为 5,但对应的布尔维度为 1

【问题讨论】:

  • X=[X[::] % 2 == 0] 然后print(X) 是你想要的吗?
  • X 是一个 5x5 矩阵,但 X[:,1:2] 是一个 1x5 矩阵。它们的形状不同,所以发生了错误。
  • 请同时说明您的预期结果,您希望看到X 的哪些元素,以及以什么形式出现。

标签: python numpy numpy-slicing


【解决方案1】:

这是你想要的吗?

import numpy as np
X = np.arange(1, 26).reshape(5, 5)
X=[X[::] % 2 == 0]
print(X)

输出

[array([[False,  True, False,  True, False],
       [ True, False,  True, False,  True],
       [False,  True, False,  True, False],
       [ True, False,  True, False,  True],
       [False,  True, False,  True, False]])]

【讨论】:

    【解决方案2】:

    如果你想得到条件为真的整个矩阵。你可以这样做

    X % 2 == 0
    

    如果你想得到条件为真的第一列那么

    X[:, 1:2] % 2 ==0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 2022-08-19
      • 2013-03-18
      • 1970-01-01
      相关资源
      最近更新 更多