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])
代码选择矩阵中的正值并给出相应的索引。但是,我希望在列向量而不是行中输出正值。附上当前和所需的输出。
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])