向numpy数组添加互补值

时间:2019-08-31 00:04:36

标签: python numpy numpy-ndarray

我有一个一维的numpy数组,例如:

import numpy as np
arr = np.array([0.33, 0.2, 0.8, 0.9])

现在,我想更改数组,以便也包括一个减去值的值。这意味着该数组应如下所示:

[[0.77, 0.33],
 [0.8, 0.2],
 [0.2, 0.8],
 [0.1, 0.9]]

这怎么办?

3 个答案:

答案 0 :(得分:2)

>>> np.vstack((1 - arr, arr)).T
array([[0.67, 0.33],
       [0.8 , 0.2 ],
       [0.2 , 0.8 ],
       [0.1 , 0.9 ]])

或者,您可以创建一个空数组并填写条目:

>>> np.empty((*arr.shape, 2))
>>> x[..., 0] = 1 - arr
>>> x[..., 1] = arr
>>> x
array([[0.67, 0.33],
       [0.8 , 0.2 ],
       [0.2 , 0.8 ],
       [0.1 , 0.9 ]])

答案 1 :(得分:1)

使用:

arr=np.insert(1-arr,np.arange(len(arr)),arr).reshape(-1,2)

arr

输出:

array([[0.33, 0.67],
       [0.2 , 0.8 ],
       [0.8 , 0.2 ],
       [0.9 , 0.1 ]])

答案 2 :(得分:1)

尝试column_stack

np.column_stack([1 - arr, arr])

Out[33]:
array([[0.67, 0.33],
       [0.8 , 0.2 ],
       [0.2 , 0.8 ],
       [0.1 , 0.9 ]])