Python学习手记-Numpy基础

1 Numpy简介

NumPy是Python中科学计算的基础软件包。
它是一个提供多了维数组对象,多种派生对象(如:掩码数组、矩阵)以及用于快速操作数组的函数及API;
它包括数学、逻辑、数组形状变换、排序、选择、I/O 、离散傅立叶变换、基本线性代数、基本统计运算、随机模拟等等。

2 Numpy数组

NumPy数组在创建时具有固定的大小, 更改ndarray的大小将创建一个新数组并删除原来的数组。
NumPy数组中的元素都需要具有相同的数据类型,因此在内存中的大小相同。
NumPy数组有助于对大量数据进行高级数学和其他类型的操作。

3 np基本操作

3.1 np常用数据类型

int 8/16/32/64
float 16/32/64
complex64/128 (64指实部虚部皆32位浮点数)
object(该类型与MATLAB cell相似)

3.2 np数组属性

ndim/ shape/ size/ dtype/ itemsize/ real/ imag
秩/n行m列/元素总个数/ 元素类型/ 元素大小(字节)/元素实部/ 元素虚部

3.3 创建np数组

# 由列表和元组创建数组
np.array(list/tuple,dtype)
# 指定始末和步长生成数组
np.arange(min,max,step,dtype)
# 全空与全0/1数组
np.empty(shape,dtype)
np.zeros(shape,dtype)
np.ones(shape,dtype)
# 随机数组
np.random.rand(n) #生成0,1之间的n个随机数
np.random.randn(n)#生成0,1之间的n个随机数,服从正态分布
np.random.randint(low, high, size) #返回随机的整数
np.random.random_integers(low, high, size) #返回随机的整数

3.4 np切片与索引

# 单个元素
a[i,j]
# 指定始末和步长
a[i:j] a[i:j:step]
# 指定某行某列
a[i,:]/a[:,j]
# 从第i+1个元素至末尾
a[i:]
# 数组索引[i1,j1],...
a[[i1,i2,...],[j1,j2,...]]
# 布尔索引
a[T/F]

3.5 np数组操作

# 修改形状
np.reshape(a,[m,n])
# 转置
np.transpose(a)/ a.T
# 拼接
np.concatenate((a1,a2,...),axis=0/1) #axis控制纵横
np.hstack((a1,a2,...)) #左右
np.vstack((a1,a2,...)) #上下
# 修剪:x>max->max,x<min->min,中间元素不变
np.clip(a,min,max)
# 分块
np.split(a,num,axis=0/1) #均匀分块:num分割块数,axis控制横纵
np.array_split(a,num,axis=0/1) #支持非均匀分块
# 数组打乱
np.random.shuffle(a) #类似洗牌,打乱顺序,a变了
np.random.permutation(a) #打乱顺序,返回一个随机排列,a不变
# 排序:axis列行,kind排序方法,快排/归并/堆排
np.sort(a,axis=0/1,kind)
np.argsort(a) #返回的是数组值从小到大的索引值。
# 深度复制
np.copy(a)

3.6 np统计/算术函数

# 统计函数
np.amax/amin/median/mean/var/ptp(def:max-min)
# 三角函数
np.sin/cos/tan/arcsin/arccos/arctan
np.degree #弧度->角度
# 取整 decimals舍入的小数位数
np.around(a,decimals)/floor/ceil

3.7 np线性代数

# 矩阵相乘
np.dot(A,B) #A*B是对应元素相乘,dot是矩阵相乘
# 点积
np.vdot(A,B) #A*B所有元素之和
# 行列式
np.linalg.det()
# 矩阵的逆
np.linalg.inv()

3.8 np输入输出

# 保存单个数组
numpy.save(file, arr) #后缀’.npy‘
# 保存多个数组(args: 要保存的数组;kwds: 要保存的数组使用关键字名称)
numpy.savez(file, *args, **kwds)
# 加载
np.load(file)
# 以文本形式保存或加载
np.loadtxt(FILENAME, dtype=int, delimiter=' ')
np.savetxt(FILENAME, a, fmt="%d", delimiter=",")

参考资料

Numpy 中文文档
菜鸟教程-Numpy教程
莫烦Numpy&pandas讲解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值