【问题标题】:Printing locations of non-zero elements of an array in Python在 Python 中打印数组的非零元素的位置
【发布时间】:2023-02-09 20:26:16
【问题描述】:

我有一个数组 y。我用np.nonzero() 标识所有非零元素。但我想以预期输出中所示的方式打印输出。

import numpy as np

y=np.array([[ 0.0, -1.3e-08, 0.0 ],
            [-1.3e-08,  0.0, 1.4e-9],
            [0.0, 2.3e-7, 1.9e-6]])

Result=np.nonzero(y)
print(Result)

当前输出是

(array([0, 1, 1, 2, 2], dtype=int64), array([1, 0, 2, 1, 2], dtype=int64))

预期的输出是

array([[0,1],[1,0],[1,2],[2,1],[2,2]])

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    你可以使用np.stack

    import numpy as np
    
    y=np.array([[ 0.0, -1.3e-08, 0.0 ],
                [-1.3e-08,  0.0, 1.4e-9],
                [0.0, 2.3e-7, 1.9e-6]])
    
    Result=np.nonzero(y)
    np.stack(Result, axis = -1)
    

    输出

    array([[0, 1],
           [1, 0],
           [1, 2],
           [2, 1],
           [2, 2]])
    

    【讨论】:

      【解决方案2】:
      [[x,y] for x,y in zip(Result[0],Result[1])]
      

      【讨论】:

        猜你喜欢
        • 2022-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        • 1970-01-01
        • 2019-02-17
        • 1970-01-01
        相关资源
        最近更新 更多