【问题标题】:How to manipulate multidimensional numpy array in python如何在python中操作多维numpy数组
【发布时间】:2022-01-14 03:22:23
【问题描述】:

我是python数组的新手,请帮助我。

我有一个像这样的多维 numpy 数组:

array([[   0., 2073., 2352., 1119., 2074., 1344., 4035., 1980., 2213.,
        2363., 2655., 2322., 1148., 2046., 2234., 1076., 1647., 2957.,
        1968., 2246., 1723.],
       [1517.,    0.,  891., 1537., 1993., 2231., 2574.,  689., 1561.,
        2157., 1517., 3275., 1566.,  757.,  774., 2190.,  822., 1355.,
        2152., 1575., 1064.],
       [1597., 1329.,    0., 1617., 1106., 1345., 1951., 1551., 1938.,
        1270.,  629., 2320., 1646., 1619.,  862., 2267., 1357.,  934.,
        1264.,  687.,  342.]])

我想在每个数组的开头添加 0,最后我想添加 22 of 0 的数组,所以它变成这样:

array([[0.,   0., 2073., 2352., 1119., 2074., 1344., 4035., 1980., 2213.,
        2363., 2655., 2322., 1148., 2046., 2234., 1076., 1647., 2957.,
        1968., 2246., 1723.],
       [0.,1517.,    0.,  891., 1537., 1993., 2231., 2574.,  689., 1561.,
        2157., 1517., 3275., 1566.,  757.,  774., 2190.,  822., 1355.,
        2152., 1575., 1064.],
       [0.,1597., 1329.,    0., 1617., 1106., 1345., 1951., 1551., 1938.,
        1270.,  629., 2320., 1646., 1619.,  862., 2267., 1357.,  934.,
        1264.,  687.,  342.],
       [0.,0., 0., 0., 0., 0., 0., 0., 0., 0.,
        0., 0., 0., 0., 0,  0., 0, 0., 0.,
        0., 0.,    0.]])

请帮我编写代码

【问题讨论】:

    标签: python arrays numpy multidimensional-array


    【解决方案1】:

    如果数组是arr,那么你可以使用:

    np.pad(arr, ((0, 1), (1, 0)))
    

    【讨论】:

    • 感谢您的回答,它有效!对不起,我想问一个关于上面数组的题外话问题,你知道如何改变数组的位置吗?我想用 arr[2] 切换 arr[0] 谢谢
    • 您的意思是要交换这两行吗?如果是这样,那么arr[[0, 2]] = arr[[2, 0]] 应该这样做。
    【解决方案2】:

    您可以在每个数组的开头insert0,然后append 22 个列表0

    import numpy as np
    
    data = np.array([[0., 2073., 2352., 1119., 2074., 1344., 4035., 1980., 2213.,
                      2363., 2655., 2322., 1148., 2046., 2234., 1076., 1647.,
                      2957.,
                      1968., 2246., 1723.],
                     [1517., 0., 891., 1537., 1993., 2231., 2574., 689., 1561.,
                      2157., 1517., 3275., 1566., 757., 774., 2190., 822., 1355.,
                      2152., 1575., 1064.],
                     [1597., 1329., 0., 1617., 1106., 1345., 1951., 1551., 1938.,
                      1270., 629., 2320., 1646., 1619., 862., 2267., 1357., 934.,
                      1264., 687., 342.]])
    
    updated = np.insert(data, 0, 0, axis=1)
    updated = np.append(updated, [[0] * 22], axis=0)
    print(updated)
    

    输出:

    [[   0.    0. 2073. 2352. 1119. 2074. 1344. 4035. 1980. 2213. 2363. 2655.
      2322. 1148. 2046. 2234. 1076. 1647. 2957. 1968. 2246. 1723.]
     [   0. 1517.    0.  891. 1537. 1993. 2231. 2574.  689. 1561. 2157. 1517.
      3275. 1566.  757.  774. 2190.  822. 1355. 2152. 1575. 1064.]
     [   0. 1597. 1329.    0. 1617. 1106. 1345. 1951. 1551. 1938. 1270.  629.
      2320. 1646. 1619.  862. 2267. 1357.  934. 1264.  687.  342.]
     [   0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.
         0.    0.    0.    0.    0.    0.    0.    0.    0.    0.]]
    

    说明:

    • 我们已插入axis 1 以在现有多维数组中添加0
    • 我们已将 22 个 0 的列表附加到末尾的 axis 0。

    参考资料:

    【讨论】:

      猜你喜欢
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 2022-08-19
      • 2017-05-09
      • 2018-07-25
      相关资源
      最近更新 更多