【问题标题】:Selecting axis form multidimensional arrays with an array用数组选择轴形成多维数组
【发布时间】:2016-05-12 10:10:01
【问题描述】:

我正在尝试使用另一个数组选择多维数组的子集,例如,如果我有:

a=np.linspace(1,30,30)
a=a.reshape(5,3,2)

我想取子集 [:,0,1],我可以这样说

a_subset=a[:,0,1]

但是,有没有办法定义一个指定该子集的数组/列表然后减去它?这个想法是做这样的事情:

b=[:,0,1]
a_subset=a[b]

不作为“:”工作的项目不被接受(“SyntaxError:无效语法”)

【问题讨论】:

    标签: python arrays numpy subset slice


    【解决方案1】:

    您可以使用numpy.index_exp (docs) 执行此操作,如下所示:

    import numpy as np
    
    a = np.linspace(1, 30, 30)
    a = a.reshape(5, 3, 2)
    
    b = np.index_exp[:,0,1]
    a_subset = a[b]
    

    【讨论】:

    • 等价的表达式是np.s_[:,0,1](slice(None), 0, 1)
    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2019-03-15
    • 2022-01-13
    • 2011-02-03
    • 2021-07-16
    • 1970-01-01
    • 2014-08-08
    相关资源
    最近更新 更多