前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python>>numpy包

python>>numpy包

作者头像
用户10271432
发布2022-12-19 14:35:26
7240
发布2022-12-19 14:35:26
举报
文章被收录于专栏:机器学习-大数据

章节内容 什么是NumPy模块和NumPy数组 创建数组 基本数据类型         数据可视化         索引和切片         副本和视图

目录

什么是NumPy模块和NumPy数组?

创建数组

基本数据类型

数据可视化

索引和切片

副本和视图


什么是NumPy模块和NumPy数组?

NumPy数组

python对象

高级数字对象:整数、浮点数容器:列表,字典,元组

NumPy提供:

继承了python中的列表(List)容器中的优良特性丰富的函数,便于提高计算效率,提高代码简洁新专业为科学计算而设计也成为面向数组,矩阵(多维数组)的计算

  • 高级数字对象:整数、浮点数
  • 容器:列表,字典,元组

NumPy提供:

  • 继承了python中的列表(List)容器中的优良特性
  • 丰富的函数,便于提高计算效率,提高代码简洁新
  • 专业为科学计算而设计
  • 也成为面向数组,矩阵(多维数组)的计算

计算效率大幅度提高

每个循环 178 μs ± 3.98 μs(7 次运行,每次 10,000 次循环)。

NumPy 参考文档

  • 交互式的帮助

 创建数组

利用arange手动构建数组

利用linspace创建数组

 用特殊的方法创建特殊数组

  • 利用zeros(n)创建一个n个元素的数组
  • 利用zeros((n,m))创建多维数组
  • 利用eye((n,m))创建多维数组
  • 利用diag((n,m))创建多维数组(方阵)

 基本数据类型

复数类型:

d = np.array([1+2j, 3+4j, 5+6*1j])  d.dtypedtype('complex128')

布尔数据类型:

e = np.array([True, False, False, True]) e.dtypedtype('bool')

字符串类型:

f = np.array(['Bonjour', 'Hello', 'Hallo']) f.dtype # <--- strings containing max. 7 letters dtype('S7')

更多:

int32int64uint32uint64

  • int32
  • int64
  • uint32
  • uint64

数据可视化

  • 导入包
代码语言:javascript
复制
import matplotlib.pyplot as plt
  • 数据的输入
代码语言:javascript
复制
x = np.linspace(0,3,20)
y = np.linspace(0,8,20)
  • 绘制图形
代码语言:javascript
复制
plt.plot(x,y)
  •  一个有趣的实验
代码语言:javascript
复制
image = np.random.rand(30,30)
plt.imshow(image,plt.cm.hot)

 索引和切片

创建一个数组之后,因为numpy几乎继承了python中的list容器中所有特性,其切片和list容器的切片操作类似,这里就不展开了,直接用图来展示。

 副本和视图

我们创建一个切片之后,得到的numpy数组和原来的数组是共享同一块内存空间,所以修改任意一个numpy数组中的数据,另外的一个numpy数组也会被修改。

  • 调用np.map_share_memory(a,b),可以查看两个数组是否共用一个内存空间
代码语言:javascript
复制
a = np.arange(10)
>>> aarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> b = a[::2]

>>> b

array([0, 2, 4, 6, 8])

>>> np.may_share_memory(a, b)

True
  • 如果不想共享同一块内存空间
代码语言:javascript
复制
a = np.arange(10)
>>> c = a[::2].copy()  
c[0] = 0
>>> np.may_share_memory(a, c)
False
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是NumPy模块和NumPy数组?
  •  创建数组
  •  基本数据类型
  • 数据可视化
  •  索引和切片
  •  副本和视图
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档