我有一个一维的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]]
这怎么办?
答案 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 ]])