首页 > 解决方案 > 创建一个包含 1 列和数据列的矩阵

问题描述

我的 x 变量有 100 个数据点,我想将它们放入一个矩阵中,但在矩阵中也有一列在 1 之前。所以它看起来像 [1 1 1 .... [x1 x2 .....]

有没有办法做到这一点?

标签: pythonmatrix

解决方案


假设数组是一个 numpy 数组:

import numpy as np

xs = np.random.random(size=100)
ones = np.ones(shape=len(array))

输出:

# xs (100 values)
array([3.50037538e-01, 1.08917935e-01, 7.91498597e-01, 3.60795423e-01,
       ...
       5.72706863e-01, 4.58894874e-01, 2.42843260e-01, 6.09427238e-01])

# ones (100 values)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
       ...
       1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
在同一维度合并两者
>>> np.r_[ones, xs]
np.array([1., 1., ... 1., 3.50037538e-01, 1.08917935e-01, ...])
合并为列
>>> np.c_[ones, xs]
array([[1.00000000e+00, 3.50037538e-01],
       [1.00000000e+00, 1.08917935e-01],
       [1.00000000e+00, 7.91498597e-01],
       ...
       [1.00000000e+00, 6.09427238e-01]])

假设一个列表

x_list = xs.tolist()
ones_list = [1]*len(x_list)

输出:

# x_list (100 values)
[3.50037538e-01, 1.08917935e-01, 7.91498597e-01, 3.60795423e-01,
 ...
 5.72706863e-01, 4.58894874e-01, 2.42843260e-01, 6.09427238e-01]

# ones_list (100 values)
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 ...
 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
在同一维度合并两者
>>> x_list+ones_list
[1, 1,..., 1, 3.50037538e-01, 1.08917935e-01, ...]
在第二维中合并两者
>>>> list(zip(ones_list, x_list))
[(1, 0.3500375382514712),
 (1, 0.10891793499403313),
 ...
 (1, 0.6094272384712242)]

推荐阅读