数据分析库之Numpy
Numpy get started
NumPy中我们要学习的核心其实就是一个 ndarray n多 d dimension 维度 array数组 多维数组
创建一个ndarray的几种方法
import numpy as np
1. 使用np.array()创建多维数组
np.array([1,2,3]) # 多维数组的构造函数 # 传入 列表 就可以创建响应的多维数组
2. 使用np的常用函数(routines)创建
1) np.ones(shape, dtype=None) 功能:按照指定形状创建多维数组,并用1填充 参数: shape 用于指定创建的多维数组的形状 可以传入2 或者 (2,3) dtype 数据的类型 np.int8 np.float64 返回值:返回创建好的多维数组数组
测试代码: shape用来指定创建的多维数组的 形状 np.ones(2) # 传入2 产生有两个元素的多维数组 np.ones(shape=(2,3)) # ones创建出来的多维数组 内部的值 都是用1来填充 np.ones(shape=(2,3,3,3,3)) np.ones(shape=2) # 一维 np.ones(shape=(2,3)) # 二维 np.ones(shape=(2,3,3)) # 这是一个三维数组 里面有两个元素 里面套了3个元素 np.ones(shape=(5,3,4)) # 这是一个三维数组 数组里面有5个元素 里面有3个元素 里面有4个元素
2) np.zeros(shape, dtype=float)
功能类似np.zeros只不过不是用1填充 而是用0填充
3) np.full(shape, fill_value, dtype=None) # shape用来指定形状, fill_value用来指定用什么值来填充 示例: np.full(shape=(2,3),fill_value=5)
4) np.eye(N, dtype=float) 功能:创建一个N行N列的方阵(方阵就是行和列的数量相等的矩阵) 参数:N 指定矩阵中有多少行(也是多少列) 返回值: 主对角线上是1,其他地方是0的方阵(单位矩阵) 主对角线为1其他的位置为0(左上角的右下角的对角线叫做主对角线) 示例: np.eye(5) # 单位矩阵 # 主对角线上是1 其他地方是0的矩阵就是单位矩阵 # 左上角到右下角的对角线 就是主对角线 # 单位矩阵和其他矩阵相乘 得到的结果 还是原来的矩阵
结果展示:
array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])
5.1) np.linspace(start, stop, num=50, dtype=None) 功能:把start到stop的这个范围的数,等分成num份儿,填入数组 5.2) np.logspace(start, stop, num=50, dtype=None) 功能:把start到stop的这个范围的数,等分成num份儿,获得的值作为10的指数,求出来的值,填入数组
参数说明:
# start, stop, num=50
# 从几开始 到几结束 num指定是要多少个 (0,5) (0,4] [0,5) [start,end]
# np.linspace(1,5,3)
# np.linspace(1,5,2) # 从1到5 的 等差数列
# np.linspace(1,5,4)
np.linspace(1,5,5)
6) np.arange([start, ]stop, [step, ]dtype=None)
从start,到end,每隔step取一个值,放入一个数组
# [start,] stop[, step,]
# np.arange(5) # 不指定start和step start默认是0 step默认是1 [0,5)每隔1取一个
# np.arange(1,5) # 从1开始到5结束 每隔一个取一个
np.arange(1,11,2)
7) np.random.randint(low, high=None, size=None, dtype='l') 从low到high的范围随机取整数,填充多维数组 size用于指定数组的形状 如 2 (2,3)
8) np.random.randn(d0, d1, ..., dn) 传入几个参数,就创建几维数组 产生以0为中心 方差为1 的 标准正太分布 的随机数 填充数组 如 np.random.randn(2,3,3) 产生一个三维数组 数组中有两个数组 两个数组中分别有三个数组 三个数组中每个都有三个元素 # 里面的参数 用来指定各个维度中元素的个数 np.random.randn(2,3) # 产生一个多维数组 里面有2个元素 里面有三个元素 # 标准正态分布 平均值是0 标准差是1 的正态分布 就是 标准正态分布 # randn 按照指定的形状去产生 多维数组 里面的值用随机值来填充(随机值的产生 满足标准正态分布)
9) np.random.normal(loc=0.0, scale=1.0, size=None) np.random.randn是标准正态分布(以0为中心,方差是1) normal是可以指定中心和方差的一般正态分布 loc 正态分别的中心 scale 正态分布的变化范围 size 数组的形状 如 2 (2,3) # loc=0.0, scale=1.0, size=None # 指定分布中心 scale用来指定标准差 size指定形状 # np.random.normal(loc=0,scale=1,size=(2,3)) np.random.normal(loc=175,scale=15,size=(7,11)) # np.random.normal(loc=175,scale=15,size=(3,4))
naarray的属性
4个必记参数:
ndim:维度
shape:形状(各维度的长度)
size:总长度
dtype:元素类型
数组应用:用于绘图
import matplotlib.pyplot as plt # imread可以读取图片 jin = plt.imread('../backup/jin.png') jin.shape # 这是一个三维数组 里面有273个元素 里面有411个元素 里面有3个元素 plt.imshow(jin)