Numpy库的使用
2018-06-18 01:16:43来源:未知 阅读 ()
1.Numpy的引用
import numpy as np (np为引入模块的别名)
2.N维数组对象:ndarray
数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据。
设置专门的数组对象,经过优化,可以提升这类应用的运算速度。
例:计算A^2 + B^3,其中,A和B是一维数组。
传统python语言写法:
1 def pySum(): 2 a = [0,1,2,3,4] 3 b = [9,8,7,6,5] 4 c = [] 5 6 for i in range(len(a)): 7 c.append(a[i]**2 + b[i]**3) 8 9 return c 10 11 print(pySum())
使用numpy编写:
1 import numpy as np 2 3 def npSum(): 4 a = np.array([0,1,2,3,4]) 5 b = np.array([9,8,7,6,5]) 6 7 c = a**2 + b**3 8 9 return c 10 11 print(npSum())
ndarray是一个多维数组对象,由两部分组成:
- 实际的数据
- 描述这些数据的元数据(数据维度、数据类型)
ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始。
ndarray实例:
ndarray对象的属性
属性 说明
.ndim 秩,即轴的数量和维度的数量
.shpe ndarray对象的尺度,对于矩阵,n行m列
.size ndarray对象元素的个数,相当于.shape中n*m的值
.dtype ndarray对象的元素类型
.itemsize ndarray对象中每个元素的大小,以字节为单位
ndarray案例:
ndarray的元素类型
数据类型 说明
bool 布尔类型,True或False
intc 与C语言中的int类型一致,一般是int32或int64
intp 用于索引的证书,与C语言中ssize_t一致,int32或int64
int18 字节长度的整数,取值:[-128,127]
int16 16位长度的整数,取值[-32768,32767]
int32 32位长度的整数,取值[-2^31,2^31-1]
int64 64位长度的整数,取值[-2^63,2^63-1]
uint8 8位无符号整数,取值:[0,255]
uint16 16位无符号整数,取值:[0,65535]
uint32 32位无符号整数,取值:[0,2^32-1]
uint64 64位无符号整数,取值:[0,2^64-1]
float16 16位半精度浮点数,1位符号位,5位指数,10位尾数
float32 32位半精度浮点数,1位符号位,8位指数,23位尾数
float64 64位半精度浮点数,1位符号位,11位指数,52位尾数
complex64 复数类型,实部和虚部都是32位浮点数
complex128 复数类型,实部和虚部都是64位浮点数
对比:Python语法仅支持整数、浮点数和复数3种类型
- 科学计算涉及数据较多,对存储和性能都有较高要求
- 对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能
- 对数据元素精确定义,有助于程序员对程序规模有合理评估
ndarray实例:
ndarray数组可以由非同质对象构成
非同质对象为对象类型
非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用
3.ndarray数组的创建方法
- 从Python中的列表、元组等类型创建ndarray数组
- 使用NumPy中函数创建ndarray数组,如:arange,ones,zeros等
- 从字节流(raw bytes)中创建ndarray数组
- 从文件中读取特定格式,创建ndarray数组
-----------------------------------------------------------------------------------------------------------------------------
- 从Python中的列表、元组等类型创建ndarray数组
x = np.array(list/tuple)
x = np.array(list/tuple,dtype=np.float32) dtype可指定哪个元素的数据类型
当np.array()不指定dtype时,NumPy将根据数据情况关联一个dtype类型
- 使用NumPy中函数创建ndarray数组,如:arange,ones,zeros等
函数 说明
np.arange(n) 类似range函数,返回ndarray函数类型,元素从0到n-1
np.ones(shape) 根据shape生成一个全1数组,shape是元组类型
np.zeros(shape) 根据shape生成一个全0数组,shape是元组类型
np.full(shape,val) 根据shape生成一个数组,每个元素值都是val
np.eye(n) 创建一个正方的n*n单位矩阵,对角线为1,其余为0
np.ones_like(a) 根据数组a的形状生成一个全1数组
np.zeros_like(a) 根据数组a的形状生成一个全0数组
np.full_like(a,val) 根据数组a的形状生成一个数组,每个元素值都是val
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Django项目中使用qq第三方登录。 2019-08-13
- Python连载30-多线程之进程&线程&线程使用 2019-08-13
- Python学习日记(十) 生成器和迭代器 2019-08-13
- 【Python】语法基础 | 开始使用Python 2019-08-13
- 使用scrapy框架爬取全书网书籍信息。 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash