numpy学习——基础篇

日期:2021/4/20

作者:就叫易易好了

什么是numpy库?

numpy的全名为Numeric python,是Python语言的一个扩充程序库,支持高级大量的维度数组与矩阵运算,而且还提供了大量的数学函数库。

基本语法

import numpy as np
array = np.array([[1,2,3],[2,3,4]])print(array)
print('number of dim:',array.ndim) #几维数组
print('shape:',array.shape)  #求行数是多少,列数是多少
print('size:',array.size)  #总共会有多少元素在里面

如何用numpy创建矩阵,数组?

import numpy as np
a=np.array([2,23,4])
print(a)#输出是[2 23 4]

可以给定义的属性制定type

a=np.array([2,23,4],dtype=np.int)
print(a.dtype)#输出为:int64  也就是64位的int格式,默认64位的int  如果要设置成32位的int,可以dtype=np.int32
import numpy as np
a=np.zeros((3,4))
print(a)#运行结果为
[[0.0.0.0.][0.0.0.0.][0.0.0.0.]]
import numpy as np
a=np.ones((3,4),dtype=np.int16)
print(a)#运行结果为
[[1 1 1 1][1 1 1 1][1 1 1 1]]
import numpy as np
a=np.arange(10,20,2) #从10开始,到20结束(不包括20),输出数列,公差为2
print(a)#运行结果为
[10,12,14,16,18]
import numpy as np
a=np.arange(12).reshape((3,4))  #重新定义形状,为3行,4列
print(a)运行结果为:
[[0 1 2 3][4 5 6 7][8 9 10 11]]
import numpy as np
a=np.linspace(1,10,5)  #1到10这串数字,生成5个数,每个数字之间等距
print(a)#运行结果为[1  3.25  5.5  7.75  10]

如果要改变上面这个矩阵的形状,可以reshape一下

import numpy as np
a=np.linspace(1,10,6).reshape((2,3))  #1到10这串数字,生成6个数,每个数字之间等距,2行3列
print(a)
#运行结果为
[[1  2.8  4.6][6.4 8.2 10]]
#array的减法
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=a-b
print(c)#运行结果为
[10 20 30 40][0 1 2 3]
[10 19 28 37]
#调用sin函数
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
c=10*np.sin(a)
print(c)
import numpy as np
b=np.arange(4)
print(b)
print(b<3)#运行结果为
[0 1 2 3]
[True True True False]

矩阵之间的计算

import numpy as np
a=np.array([[1,1],[0,1]])
b=np.arange(4).reshape((2,2))c=a*b  #逐个相乘
c_dot=np.dot(a,b)  #矩阵相乘
print(c)
print(c_dot)#运行结果
[[1 1][0 1]]
[[0 1][2 3]][[0 1][0 3]]
[[2 4][2 3]]
import numpy as np
a=np.random.random((2,4)) #随机生成一个2行4列的矩阵print(a)
print(np.sum(a)) #求这个矩阵的所有元素和
print(np.min(a)) #求这个矩阵的最小元素
print(np.max(a)) #求这个矩阵的最大元素#如果只需要求第一行的元素和,可以定义一个维度
print(np.sum(a,axis=1)) #按行求和
#axis=0时是按列数求和

索引

注意索引从0开始!!

import numpy as np
A=np.arange(2,14).reshape((3,4))
print(np.argmin(A))  #求最小值的索引
print(np.argmax(A)) #求最大值的索引
print(np.mean(A)) #求平均值
print(np.median(A)) #求中位数#运行结果为
[[2 3 4 5][6 7 8 9][10 11 12 13]]
0
11
7.5
7.5
import numpy as np
A=np.arange(3,15)
print(A)
print(A[3]) #输出索引为3的元素#运行结果为
[3 4 5 6 7 8 9 10 11 12 13 14]
6#如果该矩阵有维度
import numpy as np
A=np.arange(3,15)。reshape((3,4))
print(A)
print(A[2]) #输出索引为2的行
print(A[1][1]) #输出索引为第1行第1列的元素
print(A[2,:]) #输出第2行的所有列
print(A[:,1]) #输出第1列的所有行
print(A[1,1:2]) #输出索引为第1列的1到2的元素值

array合并

import numpy as np
A=np.array([1,1,1])
B=np.array([2,2,2])
C=print(np.vstack((A,B))) #向下的合并,vertical stack
#运行结果为
[[1 1 1][2 2 2]]#如果要看A和C的shape,可以
print(A.shape,C.shape)
结果为
(3,)(2,3)#还可以向后合并
D=np.hstack((A,B))
print(D)
print(A.shape,D.shape)
#结果为[1 1 1 2 2 2]
(3,)(6,)C=print(np.vstack((A,B))) #向下的合并,vertical stack
#运行结果为
[[1 1 1][2 2 2]]#如果要看A和C的shape,可以
print(A.shape,C.shape)
结果为
(3,)(2,3)#还可以向后合并
D=np.hstack((A,B))
print(D)
print(A.shape,D.shape)
#结果为[1 1 1 2 2 2]
(3,)(6,)

numpy学习——基础篇相关推荐

  1. 强化学习基础篇(五):Dyna-Q 算法

    强化学习基础篇(五):Dyna-Q 算法 (Dynamic Programming) 1. 简介 2. Dyna-Q 3. Dyna-Q 代码实践 4. 小结 文章转于 伯禹学习平台-动手学强化学习 ...

  2. python传递参数格式_Python语言学习基础篇之Python发送Post请求之根据参数位置传参、数据类型、不同方式传参...

    本文主要介绍了Python语言学习基础篇之Python发送Post请求之根据参数位置传参.数据类型.不同方式传参,通过具体的内容向大家展现,希望对大家Python语言的学习有所帮助. 目录 一.验证 ...

  3. 回溯法采用的搜索策略_强化学习基础篇(三十四)基于模拟的搜索算法

    强化学习基础篇(三十四)基于模拟的搜索算法 上一篇Dyna算法是基于真实经验数据和模拟经验数据来解决马尔科夫决策过程的问题.本篇将结合前向搜索和采样法,构建更加高效的搜索规划算法,即基于模拟的搜索算法 ...

  4. LINUX学习基础篇(六)帮助命令

    LINUX学习基础篇(六)帮助命令 帮助命令 man(Manual) info help - -help 帮助命令 man(Manual) 作用:查看联机帮助手册. 执行权限:所有用户. man命令的 ...

  5. LINUX学习基础篇(十二)痕迹命令

    LINUX学习基础篇(十二)痕迹命令 系统痕迹命令 w命令 who命令 last命令 lastlog命令 lastb命令 系统痕迹命令 系统中有一些重要的痕迹日志文件,如/var/log/wtmp./ ...

  6. LINUX学习基础篇(十五)软件包管理

    LINUX学习基础篇(十五)软件包管理 软件包管理 软件包分类 源码包 二进制包 选择 依赖性 rpm包安装 rpm包命名规则 rpm包安装和卸载 服务命令 rpm查询命令 验证 数字证书 rpm中文 ...

  7. 深度学习基础篇【5】从0开始搭建YOLOV5 并进行测试

    深度学习基础篇[5] 从0开始搭建 YOLOV5  并进行测试 如何评价YOLO V5,那就必须拿"上一代"YOLO V4来做对照了.先说结论,YOLO V5 在性能上稍弱于YOL ...

  8. shell学习-基础篇

    shell学习-基础篇 Linux? 挺好的! shell是基础- 最近利用闲暇时间在 http://c.biancheng.net/ 网站上学习了shell基础篇,整理成博客以加深理解 文章目录 L ...

  9. LINUX学习基础篇(三十三)系统资源

    LINUX学习基础篇(三十三)系统资源 系统资源查看 vmstat命令监控系统资源 dmesg显示开机时内核检测信息 free命令查看内存使用状态 查看CPU信息 查看内存信息 查看当前登录的用户 u ...

最新文章

  1. 上周回顾:赛门铁克失足 微软开源对骂
  2. 4che3 scu发送超时设置_Redis实现订阅发布与批量发送短信
  3. 【机器学习】最容易实现的基于OpenCV的人脸检测代码、检测器及检测效果
  4. la环球乐园里的机器人_北京环球度假区发布小黄人乐园主题视频,抢鲜感受未来的欢乐体验...
  5. 2020年进入倒计时:一波前端资源送给你~这一年,谢谢自己!
  6. Android -- 自动挂断电话
  7. 读书学习:我编程我快乐(一.2)
  8. 全套思源黑体合集(含ttf/ttc版/行高修正版)
  9. 【Python-tkinter】拼音输入方法——小学拼音练习题
  10. CentOS7修改主机名称(hostname)总是不成功的原因及解决办法
  11. 如何提高技术团队协作能力
  12. 【hive】hive如何将Jan 1, 2021 12:40:46 PM时间格式转换为指定格式
  13. xml保存图片和读取图片
  14. fMRI中自发性短暂脑网络交互的行为相关性
  15. 微信云开发-后端-快速上手
  16. 3DsMAX树木快速建模
  17. 智慧城市与智能网联汽车如何协同发展?
  18. ImageMagick将多张图片拼接成一张图片_word转存技巧:如何将每页文档转换为图片保存?...
  19. SWT之Text换行
  20. 排序算法之——归并排序和快速排序

热门文章

  1. 天气预报小程序源码,天气类微信小程序源码。API使用的是和风天气。
  2. 达梦数据库安装及基础使用(达梦8+麒麟V10 x64)
  3. java架构师什么学校好_Java架构师之路:年薪八十万的架构师课程
  4. git clone: error:RPC failed;result=18,HTTP code = 200 MiB | 2.00 KiB/s解决办法
  5. 程序员的角色定位以及项目生存能力
  6. 必须了解的银行卡知识
  7. INS/GNSS组合导航(三)松耦合、紧耦合、深度耦合
  8. 电信手机流量数据分析
  9. centos的删除与修复
  10. 用户输入0-9数字,分别输出零 壹 贰 叁 肆 伍 陆 柒 捌 玖