TVP

Numpy库

基础

创建矩阵

``````import numpy as np
a1=np.array([1,2,3,4,5,6,7])
print(a1)
print(type(a1))
a2=np.array(range(10))
print(a2)
print(type(a2))
a3=np.arange(10)
print(a3)
print(type(a3))``````
``````[1 2 3 4 5 6 7]
<class 'numpy.ndarray'>
[0 1 2 3 4 5 6 7 8 9]
<class 'numpy.ndarray'>
[0 1 2 3 4 5 6 7 8 9]
<class 'numpy.ndarray'>``````

数据类型

``````#numpy的数据类型
#1.默认数据类型
a4=np.array(range(1,11))
print(a4)
print(a4.dtype)
#2.设置数据类型
a5=np.array(range(1,11),dtype="int64")
print(a5)
print(a5.dtype)
a6=np.array([1,1,1,0,0,0,1],dtype="bool")
print(a6)
print(a6.dtype)``````
``````[ 1  2  3  4  5  6  7  8  9 10]
int32
[ 1  2  3  4  5  6  7  8  9 10]
int64
[ True  True  True False False False  True]
bool``````

numpy矩阵元素为小数

``````import random
#numpy中的小数
#1.随机生成小数矩阵
a7=np.array([10*random.random() for i in range(10)])
print(a7)
print(a7.dtype)
#2.保留小数点后n位
a8=np.round(a7,2)
print(a8)
print(a8.dtype)``````
``````[6.46665436 7.30882277 4.49303366 9.98697614 4.21035976 2.56750555
4.63963177 9.07470549 9.73631922 7.11534145]
float64
[6.47 7.31 4.49 9.99 4.21 2.57 4.64 9.07 9.74 7.12]
float64``````

numpy矩阵的形状

``````#矩阵的形状
t1=np.array([1,2,3,4,5,6])
print(t1.shape)
t2=np.array([[1,2,3],[4,5,6]])
print(t2.shape)
t3=np.array([[[1,2,3],[4,5,6]],[[5,6,7],[8,9,10]]])
print(t3.shape)
t4=t3.reshape(3,4)#行*列必须等于矩阵元素个数 reshape()返回的是一个矩阵
print(t4)
t5=np.arange(24).reshape(2,3,4)
print(t5)
#多维矩阵的行列数t5.shape[0] t5.shape[1] t5.shape[2]
#多维转1维
#1.reshape
t6=t5.reshape(t5.shape[0]*t5.shape[1]*t5.shape[2])
print(t6)
#2.flatten
t7=t5.flatten()
print(t7)``````
``````(6,)
(2, 3)
(2, 2, 3)
[[ 1  2  3  4]
[ 5  6  5  6]
[ 7  8  9 10]]
[[[ 0  1  2  3]
[ 4  5  6  7]
[ 8  9 10 11]]

[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]``````

numpy矩阵的运算

``````#numpy的运算
#1.与整数运算
t7=t7+2
print(t7)
t7=t7*2
print(t7)
t7=t7/2
print(t7)
#t7=t7/0
#print(t7)#0/0=nan 实数/0=inf
#2.与矩阵运算
#加减计算
t7=t7.reshape(4,6)
t8=np.arange(6)
t8=t7-t8
print(t8)
t9=np.arange(4).reshape(4,1)
t9=t7-t9
print(t9)
#乘除
t10=np.array(range(1,5)).reshape(4,1)
t10=t7/t10
print(t10)``````
``````[ 2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25]
[ 4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50]
[ 2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
20. 21. 22. 23. 24. 25.]
[[ 2.  2.  2.  2.  2.  2.]
[ 8.  8.  8.  8.  8.  8.]
[14. 14. 14. 14. 14. 14.]
[20. 20. 20. 20. 20. 20.]]
[[ 2.  3.  4.  5.  6.  7.]
[ 7.  8.  9. 10. 11. 12.]
[12. 13. 14. 15. 16. 17.]
[17. 18. 19. 20. 21. 22.]]
[[2.         3.         4.         5.         6.         7.        ]
[4.         4.5        5.         5.5        6.         6.5       ]
[4.66666667 5.         5.33333333 5.66666667 6.         6.33333333]
[5.         5.25       5.5        5.75       6.         6.25      ]]``````

进阶

numpy的转置（假设a为矩阵）

``````a.transpose()
a.T
a.swapaxes(1,0)#参数为taxi``````

numpy布尔索引

``````a=a<10 返回元素为bool值的矩阵。

a[a<10]=0 把矩阵中小于10的元素改为0``````

numpy的三元运算符

``np.where(a<x,x1,x2) 小于x的改为x1，大于等于x改为x2``

numpy的裁剪clip

``a.clip(a,b)小于a的替换为a，大于b的替换为b``

numpy的拼接

竖直拼接

``np.vstack((a,b)) a,b为两个矩阵``

水平拼接

``np.hstack((a,b)) a,b为两个矩阵``

numpy矩阵行列交换

``````a[[x,y],:]=a[[y,x],:] x,y为交换的两行
a[[1,2],:]=a[[2,1],:]

a[:,[x,y]]=a[:,[y,x]] x,y为交换的两列
a[:,[1,2]]=a[:,[y,x]]``````

numpy常用统计函数

求和sum

``a.sum(axis=None)``

均值mean

``np.mean(a,axis=None) 求a的均值``

中值median

``np.median(a,axis=None) 求a的中值``

最大值max

``a.max(axis=None)``

最小值min

``a.min(axis=None)``

标准差sid标准差越大代表数据跟平均值间波动越大

``a.sid(axis=None)``

numpy创建0 1矩阵

创建全0矩阵

``np.zeros((x,y)) 创建一个x*y的全0矩阵``

创建全1矩阵

``np.zeros((x,y)) 创建一个x*y的全1矩阵``

创建对角线为1的方阵

``np.eye(x) 创建对角线为1的x\*x方阵``

numpy随机生成数

``````.random.rand(d0,d1,...dn)创建d0...dn维度均为分布的随阵，浮点数（0-1)）
.random.randn(d0,d1,...dn)创建d0...dn维度标准正太分布的随阵，浮点数 平均数0，标准差1）
.random.ranint(low,high,(shape))给定上下限随机整数范围为low，high，形状是shape
.random.uniform(low,high,(size))产生有均匀分布的矩阵low为起始值，high为结束值，size为形状
.random.normal(loc,scale,(size))从正态分布中随机抽取样本，分布中心是loc（均值），标准差是scale，形状是size）
.random.seed(s) 随机数种子，s是给定种子值。每次产生相同值``````

numpy copy和view

``````a=b 相互影响 两个矩阵有一个改变另一个跟着改变

a=b.copy(),复制，a和b互不影响``````

numpy nan的注意点

``````两个nan互不相等 np.nan!=np.nan

count=np.count_nonzero(a!=a) 返回矩阵中nan个数

np.isnan(a)判断矩阵元素是否为nan 返回bool矩阵

nan与任何值计算都为nan``````

0 条评论

• Spring Boot从入门到精通-数据库连接

数据库连接使用spring提供的JdbcTemplate pom.xml新增JdbcTemplate依赖。

• Java大数据：数据库开发从入门到精通

在Java大数据开发任务当中，数据存储是非常关键的一环，涉及到分布式文件系统、分布式数据库，数据库是后端系统当中支持数据存储的重要组件。今天我们就来聊聊Java...

• 生物信息Python从入门到精通

编者注：本文来自生信编程直播课程讲师投稿，点击阅读原文可以跳转到大神的博客，欢迎点击！ 以下为文章全文： Python开发的方向太多了，有机器学习，数据挖掘，...

• Python web开发从入门到精通

1.案例教学。本书包含大量的示例代码，示例简洁且紧扣主题，读者只需参考源码，修改示例，就能得到自己想要的结果，真正实现了让读者看得懂、学得会、做得出。

• Python内置函数sorted()从入门到精通

Python内置函数sorted()可以对列表、元组、字典、集合、字符串、range对象以及其他可迭代对象进行排序，返回排序后的列表，支持使用key参数指定排序...

• Python从入门到精通的"HelloWorld!"程序

作者： zifanwang  发布于2021-04-16

• 大数据学习方向，从入门到精通

很多初学者在萌生向大数据方向发展的想法之后，不免产生一些疑问，应该怎样入门？应该学习哪些技术？学习路线又是什么？

• FFmpeg从入门到精通笔记之一库介绍

FFmpeg: Fast Forward Moving Picture Experts Group(mpeg:动态图像专家组） H.264:国际标准化组织（I...

• Python爬虫从入门到精通——解析库pyquery的使用「建议收藏」

解析库使用篇： 解析库re的使用：正则表达式 解析库XPath的使用 解析库Beautiful Soup的使用 解析库pyquery的使用

• Docker从入门到精通（七）——容器数据共享

比如我们有一个MySQL集群，通过容器启动，那么项目运行过程中的数据是保存在容器中的，假设容器被删除了，数据就丢失了，如果没有数据共享，那你就只能删库跑路了。

• python数据科学系列：numpy入门详细教程

python数据科学基础库主要是三剑客：numpy，pandas以及matplotlib，每个库都集成了大量的方法接口，配合使用功能强大。平时虽然一直在用，也看...

• Python学习入门到精通：数据类型

不论是你当前看到的网页，还是手机上的王者荣耀，如果将他们视为一个程序，那么他们都包含了这3部分。

• 数据库SQL语言从入门到精通--Part 2--MySQL安装

第一步下载我的压缩包 链接：https://pan.baidu.com/s/1EE40dU0j2U1d-bAfj7TeVA 提取码：n25c 复制这段内容...

• Python从入门到精通系列文章总目录

Python学习交流群---943598312---欢迎各位PY老司机入驻，交流学习~

• C++之STL标准模板库——从入门到精通

通俗说：STL是Standard Template Library(标准模板库)，是高效的C++程序库，其采用泛型编程思想对常见数据结构(顺序表，链表，栈和队列...

• Jmeter(六) - 从入门到精通 - 建立数据库测试计划（详解教程）

在实际工作中，我们经常会听到数据库的性能和稳定性等等，这些有时候也需要测试工程师去评估和测试，因此这篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过...

• Python使用JSON序列化从入门到精通

JSON（JavaScript Object Notation）是一个轻量级的数据交换格式，Python标准库json完美实现了该格式，用法类似于marshal...

• 书单 | 从入门到精通，数据分析「好书」推荐

统计学与数据挖掘书籍推荐 1.1《 The Elements of Statistical Learning 》，神书，不解释 1.2《实用多元统计分析》，...

10元无门槛代金券