本文共 1430 字,大约阅读时间需要 4 分钟。
1. 简单介绍
行业常说的“数据分析三剑客”或者“机器学习三剑客”,指的就是 numpy(计算), matplotlib(可视化), pandas(分析) 这三个 python 库。如果拿自然科学学科类比,matplotlib 相当于“物理学”,pandas 相当于“化学”,而 numpy 就是“数学”, 是其他学科赖以立足的“基石”。
numpy 之所以是基石,是因为 numpy 为 matplotlib 和 pandas 等提供了底层数据结构和计算支持。而 numpy 核心数据结构就是多维数组(ndarray: N-dimensional array)。
2. 准备工作
这个小节过渡有点突兀,但是为了下一步顺利运行代码,不得不强行插播这条“准备工作”。
2.1 安装
2.1.1 检查是否安装
conda list | grep numpy复制代码
或:
pip freeze | grep numpy复制代码
2.1.2 安装
已安装,请跳过。
conda install numpy复制代码
或:
pip install numpy复制代码
2.1.3 更新
已安装,可选择更新。
conda update numpy复制代码
或:
pip install --upgrade numpy复制代码
2.2 导入
np 为行业惯例缩写。
import numpy as np复制代码
3. 多维数组(numpy.ndarray: N-dimensional array)
如果熟悉 matlab (矩阵实验室),我们知道 matlab 科学计算建立在“矩阵”之上。而,numpy 的多维数组有异曲同工之妙。
3.1 创建
3.1.1 使用 np.array() 创建
以下通过一个二维列表创建一个 numpy 多维数组(numpy.ndarray) 。在 numpy 中,维度这个概念也叫秩 ,英文叫Axes ,因此,这里创建的二维数组,我们也可以称之为秩为 2 的多维数组,它包含了 2 个轴(Axis)。数组的 shape 属性是一个元组,对应多维数组每个 轴(Axis) 长度;size属性是多维数组所有元素个数,它等于 shape 所有元素的乘积。
说起来很复杂,但是实际很简单,通过下面的打印输出,我们可以很直观的理解,各个属性之间的关系。
na = np.array([[1, 2, 3], [4, 5, 6]])print( """ 对象类型:{} 形状:{} 维度(秩):{} 元素个数:{} 元素类型:{} """ .format(type(na), na.shape, na.ndim, na.size, na.dtype))na复制代码 对象类型: 形状:(2, 3) 维度(秩):2 元素个数:6 元素类型:int64 array([[1, 2, 3], [4, 5, 6]])复制代码
3.1.2 使用 np.zeros() 创建
如果不是事先就知道各元素的数值,使用 np.array() 的方式,难免有些繁琐,相比之下,只是先初始化一个全为 0 的多维数组,np.zeros() 无疑是更适合的选择。使用 np.zeros() 只需提供 shape 参数,也是第一个位置参数,就可以创建指定 shape 的多维数组,并将数组所有元素填充为 0 。
na = np.zeros((2, 3))print("dtype:
转载地址:http://gwtdy.baihongyu.com/