【问题标题】:Shortest Syntax To Use numpy 1d-array As sklearn X使用 numpy 一维数组作为 sklearn X 的最短语法
【发布时间】:2016-06-19 03:13:05
【问题描述】:

我经常有两个numpy 1d 数组,xy,并想使用它们执行一些快速的 sklearn 拟合 + 预测。

 import numpy as np
 from sklearn import linear_model

 # This is an example for the 1d aspect - it's obtained from something else.
 x = np.array([1, 3, 2, ...]) 
 y = np.array([12, 32, 4, ...])

现在我想做一些类似的事情

 linear_model.LinearRegression().fit(x, y)...

问题在于它expects an X which is a 2d column array。因此,我通常会喂它

 x.reshape((len(x), 1))

我觉得很麻烦且难以阅读。

是否有一些更短的方法可以将一维数组转换为二维列数组(或者,让sklearn 接受一维数组)?

【问题讨论】:

    标签: python numpy scikit-learn


    【解决方案1】:

    你可以分割你的数组,创建一个newaxis:

    x[:, None]
    

    这个:

    >>> x = np.arange(5)
    >>> x[:, None]
    array([[0],
           [1],
           [2],
           [3],
           [4]])
    

    相当于:

    >>> x.reshape(len(x), 1)
    array([[0],
           [1],
           [2],
           [3],
           [4]])
    

    如果你觉得它更具可读性,你可以使用转置矩阵:

    np.matrix(x).T
    

    如果你想要一个数组:

    np.matrix(x).T.A
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      相关资源
      最近更新 更多