Python 中特定条件的从行向量到列向量

From row to column vector for a specific condition in Python

代码选择矩阵中的正值并给出相应的索引。但是,我希望在列向量而不是行中输出正值。附上当前和所需的输出。

import numpy as np
from numpy import nan
import math
Flux=np.array([[-1, 2, 0],[4,-7,8],[1,-9,3]])

values = Flux[Flux >= 0]
print("positive values =",[values])

indices = np.array(np.where(Flux >= 0)).T
print("indices =",[indices])

当前输出为

positive values = [array([2, 0, 4, 8, 1, 3])]
indices = [array([[0, 1],
       [0, 2],
       [1, 0],
       [1, 2],
       [2, 0],
       [2, 2]], dtype=int64)]

期望的输出是

positive values = [array([[2], [0], [4], [8], [1], [3]])]
indices = [array([[0, 1],
       [0, 2],
       [1, 0],
       [1, 2],
       [2, 0],
       [2, 2]], dtype=int64)]

IIUC,您可以在切片数组时添加一个额外的维度:

values = Flux[Flux>=0,None]

输出:

array([[2],
       [0],
       [4],
       [8],
       [1],
       [3]])

你可以使用这个:

values = [[x] for x in values]

并使其成为一个像这样的 numpy 数组:

values = Flux[Flux >= 0]
values = np.array([[x] for x in values])
print("positive values =",[values])