高性能机器学习:Numpy
高性能机器学习:Numpy
机器学习强调测量预测能力,而使用 scikit-learn 我们可以准确、快速地进行预测。衡量预测能力主要依靠在训练数据上构建模型,在测试数据上衡量预测能力。
随着 scikit-learn 设计不断发展,它主要解决四类机器学习模型:
- 分类
- 非文本分类
- 文本分类
- 回归
- 聚类
- 降维
NumPy 基础
数据科学大部分依赖二维数据表,scikit-learn 的输入也是二维的 Numpy 数组。
Numpy 数组的形状与维度
>>> import numpy as np
>>>
>>> np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> array_1 = np.arange(10)
>>> array_1.shape
(10,)
>>> array_1.ndim
1
np.arange
与 Python 内置的 range
是一样的,只是为了区分前置了 a
,数组有一个属性 shape
,可以看到 array_1
的 shape
是 (10,)
,shape
元组的长度与数组的维度 ndim
是相同的。
>>> array_1.reshape((5, 2))
array([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]])
>>> array_1 = array_1.reshape((5, 2))
>>> array_1.ndim
2
>>>
想要改变数组的形状,可以调用 reshape
方法。
Numpy 广播
广播(broadcasting)指的是小数组向大数组进行延展或者广播。
>>> array_2 = np.arange(10)
>>> array_2 * array_2
array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81])
>>>
可以看出来,这里的运算不是基于矩阵逻辑,而是按照对位元素进行运算的。
>>> array_2 = array_2**2
>>> array_2 = array_2.reshape((5, 2))
>>> array_2
array([[ 0, 1],
[ 4, 9],
[16, 25],
[36, 49],
[64, 81]])
>>> array_2 + 3
array([[ 3, 4],
[ 7, 12],
[19, 28],
[39, 52],
[67, 84]])
>>>
3
是标量,作为较小的数组,它将进行广播机制的补齐,变成与 array_2
相同的形状,然后进行逐元素(element-wise)的运算。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)