哈喽,大家好。
之前写了几篇 Python 基础的文章,效果不错。为感谢大家的支持,月底搞一波抽奖送书活动。
闲话少叙,今天来详解一个 Python 库 —— NumPy
。
NumPy
是 Python 科学计算的基本包,几乎所有用 Python 工作的科学家都利用了NumPy
的强大功能。此外,它也广泛应用在开源的项目中,如:Pandas
、Seaborn
、Matplotlib
、scikit-learn
等。
Numpy应用的领域
举个栗子,直观感下NumPy
的强大。
均方差公式
上图是计算均方差的公式,其中Y_prediction
和Y
是数组。
下面是用NumPy
代码,一行便可完成。
NumPy计算均方差
NumPy
结合可视化库,可以用几行代码,绘制出下面的数学函数图
记得学高中学数学的时候,画函数图都要自己在本上描点,而现在用NumPy
,几行代码就搞定,既快又准确。
简单认识NumPy
后,下面进入详解
1. 与list的区别
NumPy
和list
都是数组结构,那它们之间有什么区别呢?
-
NumPy
数组中所有元素的数据类型是相同的。 -
NumPy
底层经过充分优化的 C 语言代码,计算性能比list
高。 -
NumPy
提供了全面的数学函数可以直接应用在NumPy
数组上。
2. 创建数组
NumPy
中定义的数组叫ndarray
,n-dimensions-array 即:n维数组。
用np.array()
函数可以创建NumPy
数组
>>> import numpy as np
>>> a = np.array([1, 2, 3]) #创建ndarray数组
>>> a
array([1, 2, 3])
>>> type(a)
<class 'numpy.ndarray'>
a
就是NumPy
数组,也是numpy.ndarray
类对象,该类定义了几个常用的属性
-
ndarray.ndim
:维度的数量,二位数组ndim
是 2 -
ndarray.shape
:元组,每位代表该维度上元素个数,元组长度等于ndim
-
ndarray.size
:数组中元素总数 -
ndarray.dtype
:数组中元素的数据类型 -
ndarray.itemsize
:数组中元素存储大小(以字节为单位)
>>> a = np.array([[1,2,3], [4,5,6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> a.ndim
2
>>> a.shape
(2, 3)
>>> a.size
6
>>> a.dtype
dtype('int64')
>>> a.itemsize
8
除了np.array()
创建数组外,还有下面的方式创建数组
>>> np.zeros((2,3)) # 以0填充的二维数组
array([[0., 0., 0.],
[0., 0., 0.]])
>>> np.ones((2,3)) # 以1填充的二维数组
array([[1., 1., 1.],
[1.,