numpy库

目录

一、数组

1、数组创建
2、数组属性
3、缺失值问题
4、特殊数组
5、np.random 模块
6、数组的排序
7、数组的重塑
8、索引和切片
9、数组的合并
10、数组的运算

二、np下面的通用函数

三、ndarry实例的常用方法

四、np.char模块下面的字符串函数

五、矩阵运算、协方差

六、np其他常用函数

一、数组

1、数组创建
import numpy as np
dir(np)  # 查看np库中的函数
np.array([['张','男','19'],['李','女','20']],dtype='object')
# 当输入不同数据类型的元素时,需要指明数据类型,object使用最多,否则全部转化为字符串
np.arange(1,5,0.4)  # 随机快速生成数组
np.arange(10,0,-1)  # 倒序生成
np.linspace(1,8,5)   # 第一、二位数是起始和结束位置,第三位意思是等分多少份,包含最后一位
np.linspace(1,8,5,endpoint=False)   # 不包含最后一位,再等分5份,表示1和8起始点在一个地方
#如何查看numpy定义了哪些dtype?
np.typeDict # 特殊元素组成的数组,可以是集合和字典等
a=np.array([{1,2},{3,4},{5,6}],dtype="object")
#注意这里dtype="object"可以省略。
#a是一个一维数组,它的shape是(3,)
2、数组属性
a.ndim    # 返回数组维度
b.shape   # 返回一个元组, 表示2行3列
a.size    # 返回数组包含多少个元素
b.dtype   #返回数据类型
a.itemsize   # 表示一个元素占用多少个字节
a.size * a.itemsize  # 返回数组占用多少个字节
3、缺失值问题
np.nan  # 引用缺失值函数
a.dtype  # 缺失值nan默认为float,所有它会将前面的整数型也转换成浮点型
np.array([1,2,None]) # 缺失值None会默认加上 dtype=object,所有库都可以识别
out[5]:
array([1, 2, None], dtype=object)
np.array(['1','2',np.nan])  # 缺失值nan 需要定义类型为object,只有np库或关联的库可识别np.isnan(a)  #识别缺失值,只能识别数值型,返回布尔值,应用范围非常小
4、特殊数组
np.zeros((2,3))   # 生成全部为0的数组,输入的必须为元组的形式
np.ones((3,4))    # 生成全部为1的数组
np.eye(2)         # 生成单位矩阵
np.diag([1,2,3,4])  # 生成对角阵
np.empty((2,3))     # 随机生成没有初始化的数组
5、np.random 模块
np.random.seed(100)    # 指定随机种子,保证每次生成的随机数都是一样
np.random.rand(3,4)    # 在0到1之间随机生成
np.random.uniform(10,50,(4,3))  # 第一、二位是起始范围,第三位元组表示需要生成的行列数
np.random.randn(3,4)      #标准正态分布
np.random.randint(10,30,(3,4))   # 第一、二位是起始范围,第三位元组表示需要生成的行列数
np.random.choice(['张三','李四','王五'],10)  # 从前面列表中随机抽取10个a= np.array([1,2,3])
np.random.shuffle(a)        #随机播放,直接影响数组a# 累计求和
a.cumsum()

6、数组的排序
np.argsort(a)    # 返回索引值升序排列
np.sort(a)      # 按元素大小升序,不会改变数组a
a.sort()        #直接改变数组a
np.argsort(b,axis=0)   # axis=0,按列排序,返回索引值,=1时,按行排序
sorted(b,key=lambda x:x[1])
#默认进行升序排序,可以通过reverse参数进行设定
7、数组的重塑
np.arange(15).reshape(3,5)   # 随机生成一个数组,然后划分3行5列
np.arange(6).reshape(2,-1)   # -1 表示替代列数(函数自行计算列数),此题-1就表示6/2=3列
c.ravel()      # 多维数组压缩到一维数组
np.tile(a,(3,3))     # 按a,行和列分别扩大3倍
8、索引和切片
a[[0,2]]   # 切取不连续的行,取一个不连续的行或列时候就需要用中括号,也就是列表
a[1:3,1]   # 逗号左边表示行,右边表示列数# 布尔索引
c[c[:,0]<0.5] # 切取第一列小于0.5的行
9、数组的合并
np.concatenate((a,a),axis=0)  # axis=0,增加行数,纵向合并
np.concatenate((a,a),axis=1)    # axis=0,增加行数,横向合并
10、数组的运算
a+b     # a和b都是数组,a和b的对应元素相加
a*b     # 对应元素相乘# 广播运算,后缘维度相同的两个数组也可以运算,也就是列数相同,又叫沿着第0维度广播
a = np.array([[0,0,0],[1,1,1],[2,2,2],[3,3,3]])
b= np.array([1,2,3])
a+b
out[8]:
array([[1, 2, 3],[2, 3, 4],[3, 4, 5],[4, 5, 6]])
#某个数组一个维度为1 ,其他维度都相同的两个数组也可以运算,又叫沿着第1维度广播
a = np.array([[0,0,0],   [1,1,1],[2,2,2],[3,3,3]])
b=np.array([[1],[2],[3],[4]])
a+b
out[12]]:
array([[1, 1, 1],[3, 3, 3],[5, 5, 5],[7, 7, 7]])

二、np下面的通用函数

# 一元通用函数包括np.abs、np.sqrt、np.square等。
np.add(a,b)        # a+b,对应元素相加
np.multiply(a,b)  # a*b,对应元素相乘
np.maximum(a,b)  # 两个数组对应位置的元素相比,返回较大值

三、ndarry实例的常用方法

a.T             # 矩阵转置
a.transpose(1,0) # 矩阵转置,应用范围更广,三维使用
a.astype('str')  # 转换数据类型
a.tolist()     # 转换成列表

四、np.char模块下面的字符串函数

np.char.add(a,b)  # 连接对应位置的字符串
np.char.upper(a)  # 转换成大写
d=np.char.split(a,sep=" ")   # 将字符串转换成列表,sep参数是设置分隔符

五、矩阵运算、协方差

# 点积
a.dot(b)  # 方法1
a @ b    # 方法2
np.matmul(a,b) # 方法3# 内积运算 一个矩阵乘以另外一个矩阵的转置就是内积
np.inner(a,a)  # 方法1
np.dot(a,a.T)  # 方法2# 求行列式和逆矩阵,矩阵必须是方阵
np.linalg.det(a)  # 行列式
np.linalg.inv(a)  # 逆矩阵# 二维数组的协方差矩阵
data1=np.random.rand(3,10)   #随机生成一个二维数组
np.cov(data1)      #可以将每一行看做一个X,3个X的协方差,输出3*3的列表

六、np其他常用函数

sum([1,2,3],5) # 5是起始值,即5+1+2+3=11
a = np.array([[1,2,3],[3,4,5]])
np.sum(a,1)   # 1 表示轴的意思,也就是行相加,列不变,返回([6,12])
sum(a,2)   # 每列分别相加再加2,返回([6,8,10])
np.max(a)  # 返回数组中最大的值5
a.argmin(a)  #返回数组中最小的值1
np.max(a,0)   # 0 表示0轴的意思,返回每一列的最大值([3,4,5])
a.argmax(axis=0)       # 返回每一列的最大值的索引([1,1,1],dytype=int64)np.sum(a,axis=0,keepdims=True)  # 每列和二维数组
out[12]:
array([[4, 6, 8]])

numpy库学习总结相关推荐

  1. python的 numpy库学习总结和介绍(超详细)模块

    目录 前言 numpy是什么? 一.创建数据容器 1.np.array(),通过传递一个列表,元祖来创建 2.np.zeros(),np.ones(),np.empty(),np.full(),传递对 ...

  2. Numpy库学习—squeeze()函数

    numpy.squeeze()函数 语法:numpy.squeeze(a,axis = None) 1)a表示输入的数组:2)axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错: ...

  3. numpy库学习 向量 矩阵 均为有两个[[ ,而秩为1的数组只有一个[ np.array([[]]) 与np.array([])的区别

    对于一维普通数组取shape 时只有第一项有值 举例 (4,) 对于二维普通数组取shape 时才会有完整的第二项值 举例 (4,1) https://blog.csdn.net/zenghaitao ...

  4. python中size的用法.dim_【Numpy库学习笔记】Numpy中dim、shape和size的理解

    一.dim 理解: dim就是维数,比如数组会有一维数组,二维数组--.numpy的dim维数同理. 那如何判断numpy的维数,最简单的方法就是数一数"中括号"的数量.没有中括号 ...

  5. Numpy库的学习(三)

    今天我们继续学习一下Numpy库的学习 废话不多说 ,开始讲 比如我们现在想创建一个0-14这样一个15位的数组 可以直接写,但是很麻烦,Numpy中就给我们了一个方便创建的方法 numpy中有一个a ...

  6. python numpy库_numpy库学习总结(基础知识)

    最近在学习Python中OpenCV库,学习花了很多时间,发现基础知识很重要,尤其是numpy这个库,在进行程序开发时,处理大量类似数组这种数据结构时,它的重要性等同于Python中的列表,像前篇我们 ...

  7. PaddlePaddle入门|百度零基础实践深度学习课程笔记——使用Python语言和Numpy库来构建神经网络模型

    前面的课程已经讲解了Python的一些基础操作和使用Notebook实现编程的基础知识,下面通过用Python语言和Numpy库来构建神经网络模型来初步实践. 波士顿房价预测任务 问题描述 波士顿房价 ...

  8. python学习笔记之numpy库的使用——超详细

    文章目录 NumPy介绍 一.如何创建 1.导入Numpy库,并命名为np: 2.查看版本 3.通过列表创建一维数组: 4.通过列表创建二维数组: 5.创建全为0的二维数组 6.创建全为1的三维数组 ...

  9. buffer转int python_Python学习教程第23天numpy库(上)

    点击蓝字 关注我们 numpy库的重要性 numpy库是进行数据处理时的必须库之一,大家都知道Python结合几个外加库进行数据处理,好用到与matlab say goodbye! numpy库的安装 ...

  10. python学习——numpy库

    属性: 维度 元素类型 大小 形状 创建一维 : np.arange np.linspace 注意range()只能for循环 创建零数组 一数组 单位数组 数组拼接: hstack vstack s ...

最新文章

  1. matlab生成ai图片,MATLAB绘图:导出矢量图
  2. 《一本书读懂法律常识》笔记
  3. VC6.0下opencv1.0的环境配置
  4. 将Notepad++配置成Java轻量级的IDE
  5. html图片平移,CSS3 按钮悬停时背景图片平移入场
  6. java 日期只计算年月日大小_Java 计算两个日期相差多少年月日
  7. 前端怎么使用jsessionid_前端搞微前端 | 侑夕 - 如何落地微前端一体化运营工作台...
  8. 009.共享目录下VS编写的程序在linux下打开出现中文乱码
  9. 逻辑电路 -异或门Xor Gate
  10. 论文笔记_S2D.13-2017-3DV-稀疏不变的卷积神经网络(Sparsity Invariant CNNs)
  11. 地理信息安全在线培训考试系统题库-多选题
  12. list()与tolist()区别
  13. sql未保存文档找回
  14. 爬虫————stocksnap国外高清图片网站
  15. 写论文不会写摘要,演讲不会写开场白,不会写广告词,SCQA模型帮你搞定
  16. dejavu中如何添加html文件,如何使用iText和Flying Saucer在HTML中创建PDF格式的字体? | 所有编程讨论 | zhouni.net...
  17. 软件设计架构中各模块breakdown
  18. Python制作酷炫的动画效果
  19. 计算机三级网络技术最全知识点总结三
  20. 如何解决eNSP启动AR/WLAN设备失败问题

热门文章

  1. idea ****.class拒绝访问
  2. 通俗易懂的进程与线程解释
  3. Centos 6.4 /var/log/secure 日志不记录问题
  4. Kotlin中定义编译时常量
  5. LVM卷管理及配额设置
  6. Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析(2)
  7. 基于C++的模板引擎
  8. linux下串口工具minicom
  9. linux sshd 开机自启动
  10. 用户自定义控件(UserControl)用法大全