一篇博客入门Numpy模块
(Numerical python)高性能科学计算和数据分析的基础包。
功能:
- ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
- 用于对数组数据进行快速运算的标准数学函数(无须循环)
- 线性代数,随机数生成以及傅里叶变换功能
- 用于读写磁盘数据的工具以及用于操作内存映射文件的工具
本质上,Numpy期望用户以使用“标量”的方式操作“向量”
即:操作一个矩阵向操作一个向量一样轻松。
import numpy as np
a = np.array([1,2,3,4])
b = np.array([10,20,30,40])
c = a+b
print(c)
ndarray数组
创建
-
import numpy as np a = [1,2,3,4] b = np.array(a)
-
array_one = np.ones([10,10])
创建10行10列的数据为浮点1的矩阵,同理还有zeros()
-
np.arange(1,10,2)
array([0,2,4,6,8]),从元素0开始依次递增2!!!10是娶不到的
随机数
- 设置随机种子
- np.random.seed(10)
- 均匀分布
- np.random.rand(10,10) 创建指定形状的数组(范围在0,1之间)
- np.random.uniform(0,100) 创建指定范围内的一个数
- np.random.randint(0,100) 创建指定范围内的一个整数
- 正态分布
- np.random.normal(1.75,0.1,(2,3)) 给定均值/标准差/维度 的正态分布
- np.random.randn(10,10) 指定形状的标准正态分布
随机数的相关操作
打乱shuffle
array([[1,2],[3,4]
,[5,6],[7,8]])
np.random.shuffle(a)
二维数组,只有行的顺序被打乱了,列的顺序不变
查看数组属性
用法 | 说明 |
---|---|
b.size | 数组元素的个数(shape里面每一个分量的乘积) |
b.shape | 数组形状 |
b.ndim | 数组维度 |
b.dtype | 数组元素类型 |
切片和索引
attention:
arr[5:8] = 12
在list中会报错,3个元素应该被赋三个值,但是在ndarray中可以将所有元素赋一个值
三维数组的切片索引
变形之前的元素个数和变形之后的元素个数应该保持一直。6*4 == 24
切片分成多个数组
数组&标量之间的运算
数组&数组---------------加减乘除------------对每个位置分别操作
数学和统计方法
这是对全局进行操作,however有些人希望针对行或者针对列进行某些操作。
指定计算范围的统计方法—axis
基本的数学和统计学的方法
线性代数
矩阵相乘
x.dot(y) #相当于np.dot(x,y)