这是我的第一篇笔记
首先 Numpy的设计目的是处理大数据
其次要包含的头文件
import numpy as np
然后我们进一步说说他的特点.
一.Numpy特点
1.存储结构是一个矩阵
2.静态类型:Numpy数组是在创建后不可改变,除非对整个数组结构转换
如果转化一个数据可以获取值后转化,元素的类型是在创建数组时确定的。
3.**同构的**
4.Numpy数组处理大数据具有高效性
5.由于是静态类型数据不可变,数学函数可以用C或Fortran语言编写的库快速实现,
Fortran语言是一种高性能的编程语言,特别擅长科学计算
二.Numpy的成员常用属性
size #总字节bit //一个字节=8bits
itemsize #每个元素字节数
nbytes #总字节数
ndim #矩阵维度
shape #矩阵结构 由外向内
dtype #矩阵每个元素类型(一个矩阵只能由一个类型)
三.Numpy的实例化方式
1.a=np.array([[1,2],[2,3]],dtype=int) //a指向通过np.array()方式实例化的对象
常规可以伴随`dtype`使用的数据类型是:`int`, `float`, `complex`, `bool`, `object`等 eg:dtype=int
也可以显式地定义数据类型的大小,例如:`int64`, `int16`, `float128`, `complex128`。eg:dtype="int64"
2.np.arange(start,end,step)
优点:实例化对象时赋初始值方便
缺点:只能实例化 1维数组
3.np.mgrid[start_1:end_1:step_1, start_2:end_2:step_2] //先实例化 np.ndim个 np.array(x,y)的数组 x 为 (end_1-start_1)*(1/step_1)
y同理为 (end_2-start_2)*(1/step_2)
x为列方向
第一个np.array(x,y)的每一列为np.array(start_1:end_1:step_1)
y为行方向
第二个np.array(x,y)的每一行为np.array(start_2:end_2:step_2)
只可以实例化 1个 或 np.ndim个
(1)只实例化一个,多少维度 最大实例化 多少个数组
(2)排布规律:x 跨行方向 即 列方向 与 第一个参数一致,
y 跨列方向 即 行方向 与 第二个参数一致.
4.随机数
头文件from numpy import random
(1)random.rand(x,y) / /均匀随机数 值都在0~1之间,不包含两端
(2)random.randn(x,y) //标准正分布随机数 值与元素个数有关
5.np.diag([1,2,3], k=1)
作用: 生成一个对角线是[0,1,2,3]的矩阵
k的值为整体向右偏移量
为 负值时 左偏
6.np.zeros((3,3))和np.ones((3,3))
与np.array方法类似
zeros: 生成全是0.(float)
ones: 生成全是1.(float)
7.文件I/O
(1)逗号 分隔 值 (CSV)
np.genfromtxt('matrix.dat')
matrix.dat 内容:
1800 1 1 -6.1 -6.1 -6.1 1
1800 1 2 -15.4 -15.4 -15.4 1
之类直接是 数字+" "
(2).npy文件
numpy.savetxt("matrix.csv", M)//M为要保存的数据
作用:将np数组保存为文件
可以更改要保存的类型
(比如"int64"想保存为"float")
如numpy.savetxt("matrix.csv", M,fmt='%.5f')
M = np.load("matrix.csv")
将"matrix.csv"加载到矩阵 M 中