【问题标题】:Why getting Cross index error using np.ix_为什么使用 np.ix_ 得到交叉索引错误
【发布时间】:2022-01-05 01:54:30
【问题描述】:

为什么在使用np.ix_ 时会出现此错误?

import numpy as np

a = np.arange(1,3).reshape(1,2)
print(a)

k_r = [[1,1],[1,-1]]

r = np.zeros((10,10),int)
r[np.ix_([a],[a])]= k_r

print(r)

错误:

ValueError: 交叉索引必须是一维的

【问题讨论】:

    标签: python arrays numpy matrix indexing


    【解决方案1】:

    错误告诉你交叉索引必须是一维的,但是a = np.arange(1,3).reshape(1,2)创建了一个二维数组。此外,通过将数组包装在列表中r[np.ix_([a],[a])],您正在添加另一个维度(有点,但不是真的)。​​

    解决这些问题,你会得到:

    import numpy as np
    
    a = np.arange(1,3)
    print(a)
    
    k_r = [[1,1],[1,-1]]
    
    r = np.zeros((10,10),int)
    r[np.ix_(a,a)]= k_r
    print(r)
    

    【讨论】:

      【解决方案2】:

      我想我理解这个问题。 首先,您应该像这样删除 a 周围的“[]”

      r[np.ix_(a,a)]= k_r
      

      似乎 np.ix_(a, a) 想要 a 的格式: a = [x, x] 其中 x 是。 您当前的 a 格式为:[[1 2]] 创建 a 的另一种方法是:

      a = [i for i in range(1,3)]
      

      如果这不能解决您的问题,您可以查看此页面:https://numpy.org/doc/stable/reference/generated/numpy.ix_.html

      【讨论】:

        猜你喜欢
        • 2017-03-29
        • 1970-01-01
        • 1970-01-01
        • 2020-04-13
        • 2022-07-12
        • 2013-12-25
        • 1970-01-01
        • 1970-01-01
        • 2023-02-22
        相关资源
        最近更新 更多