Numpy最短的语法——使用Numpy 1D数组作为sklearn X
在本文中,我们将介绍如何使用Numpy最短的语法来使用1D数组作为Sklearn X。
阅读更多:Numpy 教程
什么是Numpy
Numpy是Python科学计算领域的非常重要的包。它提供了高速的数组处理能力和各种各样的用于数组操作的函数。Numpy数组不同于Python的列表,它们不仅可以包含同一类型的值,还可以对多维数组进行操作,同时Numpy也适用于各种统计学和机器学习应用。
下面是一个Numpy数组的例子:
import numpy as np
arr = np.array([1, 2, 3])
print(arr)
输出结果为
[1 2 3]
什么是sklearn
scikit-learn (Sklearn) 是一个流行的 Python 机器学习库,能够在机器学习过程中处理各种各样的数据集和任务。Sklearn 包含了众多的机器学习算法,例如回归、分类以及聚类等。可以轻松地在 Sklearn 中使用与调用这些算法,从而帮助我们构建稳健的机器学习应用。
numpy最短的语法
在使用Numpy数组作为Sklearn X时,我们可以使用Numpy最短的语法,这里我们就通过例子来展示一下。
import numpy as np
from sklearn.linear_model import LinearRegression
X = [1, 2, 3, 4, 5] # Python List
y = [2, 3, 4, 5, 6]
X = np.array(X).reshape(-1,1) # 1D to 2D
y = np.array(y).reshape(-1,1)
model = LinearRegression().fit(X, y)
这里我们只需将Python List转换为NumPy数组,并且通过.reshape()
将1D数组转换为2D数组。
X = np.array(X).reshape(-1,1) # 1D to 2D
当然,如果您只需要处理的是1D数组,那么您还可以使用下面的方式:
X = np.array([1, 2, 3, 4, 5]) # Numpy 1D-array
y = np.array([2, 3, 4, 5, 6])
X = X[:, np.newaxis] # 1D to 2D
y = y[:, np.newaxis]
model = LinearRegression().fit(X, y)
这里我们使用[:, np.newaxis]
来将1D数组转换为2D数组排列。
X = X[:, np.newaxis] # 1D to 2D
数组形状信息
我们可以使用以下两种方式来获取数组的形状信息:
- 使用
.shape
来获取数组形状的元组信息 - 使用
.ndim
来获取数组的维度信息
下面我们通过例子来展示如何使用这两种方式获取数组形状信息。
import numpy as np
a = np.array([1,2,3])
print(a.shape) # 输出 (3,)
print(a.ndim) # 输出 1
b = np.array([[1,2,3],
[4,5,6]])
print(b.shape) # 输出 (2,3)
print(b.ndim) # 输出 2
c = np.array([[[1,2,3],
[4,5,6]],
[[7,8,9],
[10,11,12]]])
print(c.shape) # 输出 (2,2,3)
print(c.ndim) # 输出 3
numpy的广播
Numpy广播是Numpy在执行算术运算或比较运算时为了行数或列数不相等的数组而做出的自动处理机制。
当我们把两个形状相同的数组相加时,Numpy会自动将它们扩展到相同的形状,然后执行相应的操作。下面通过例子来展示numpy的广播机制。
import numpy as np
a = np.array([1,2,3])
b = np.array([2,2,2])
c = a + b
print(c) # 输出 [3, 4, 5]
d = np.array([[1,2,3],
[4,5,6]])
e = np.array([2,2,2])
f = d + e
print(f) # 输出 [[3 4 5]
# [6 7 8]]
总结
使用Numpy的最短语法来使用1D数组作为Sklearn X非常便利,只需要将Python List转换为Numpy数组并进行reshape或使用广播机制来将1D数组转换为2D数组即可。在实际的机器学习任务中,这个方法可以帮助我们更加方便地使用Sklearn和Numpy进行数据的处理和建模。