ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python学习手记-Numpy基础

2019-07-27 17:40:41  阅读:315  来源: 互联网

标签:Python dtype random 手记 数组 np Numpy axis


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) #返回的是数组值从小到大的索引值。

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讲解

标签:Python,dtype,random,手记,数组,np,Numpy,axis
来源: https://blog.csdn.net/qq_38167422/article/details/97532648

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有