python扩展库numpy学习

numpy简介

NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。它整合了C/C++代码的工具,使用时又很像Matlab,还包括了线性代数、傅里叶变换、随机数生成等功能。

在使用numpy库之前你需要安装numpy库:

Windows下按Win+r输入cmd之后输入pip install numpy等待下载安装完毕之后显示Successfully collected pacges:numpy表示成功。

或者可以导入numpy模块并生成4*4对角矩阵进行测试:

>>> import numpy
>>> numpy.eye(4)
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

numpy ndarray对象介绍

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。

创建一个ndarray:

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

参数说明:

名称描述
object数组或嵌套的数列
dtype数组元素的数据类型
copy对象是否需要复制
order创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok默认返回一个与基类类型一致的数组
ndmin指定生成数组的最小维度

下面我们来对上面的一些参数进行修改及测试:

>>> import numpy
>>> numpy.array([1,2,3,4,5])
array([1, 2, 3, 4, 5])
>>> numpy.array([1,2,3,4,5],dtype=str)      #数据类型设置为字符串,或者将str改为'<U1'
array(['1', '2', '3', '4', '5'], dtype='<U1')
>>> numpy.array([1,2,3,4,5],dtype = complex)   #设置为复数类型
array([1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j, 5.+0.j])
>>> b = numpy.array([1,2,3,4,5],order = 'F',ndmin = 3)  #设置维度为3
>>> b
array([[[1, 2, 3, 4, 5]]])
>>> b = numpy.array([[1,2,3,4,5],[6,7,8]])
>>> print(b)
[list([1, 2, 3, 4, 5]) list([6, 7, 8])]
numpy数据类型

numpy数据类型比python内置的数据类型多很多,常用的有:

  • bool_ :布尔型数据类型
  • int_ :默认的整数类型
  • float_ :双精度浮点数,等于float64
  • complex_:complex128 类型的简写,64位浮点数

其中int类型还有int8、int16、int32、int64,uint8、uint16、uint32、uint64

其中float类型还有float16、float32、float64

其中complex类型还有complex64、complex128

数据类型对象(dtype)

数据类型对象是用来描述与数组对应的内存区域如何使用,这依赖如下几个方面:

  • 数据的类型
  • 数据的大小
  • 数据的字节顺序(小端法或大端法,**"<“意味着小端法(最小值存储在最小的地址,即低位组放在最前面)。”>"意味着大端法(最重要的字节存储在最小的地址,即高位组放在最前面)。**就像我们前面代码中使用的’<U1’中的<。
  • 在结构化类型的情况下,字段的名称、每个字段的数据类型和每个字段所取的内存块的部分
内建类型字符代码:
字符对应类型
b布尔型
i(有符号) 整型
u无符号整型 integer
f浮点型
c复数浮点型
mtimedelta(时间间隔)
Mdatetime(日期时间)
S, a(byte-)字符串

例2:

int8, int16, int32, int64 四种数据类型可以使用字符串 ‘i1’, ‘i2’,‘i4’,‘i8’ 代替

>>> numpy.dtype('i4')
dtype('int32')
>>> numpy.dtype('i8')
dtype('int64')
>>> numpy.dtype('i1')
dtype('int8')
>>> numpy.dtype('i2')
dtype('int16')

例3:结构化数据类型的使用

import numpy as np

a = np.dtype([('age',np.int8)])
b = np.array([(10,),(20,),(30,)],dtype = a)
print(b['age'])

'''
[10 20 30]
'''

例4:定义一个结构化数据类型car,包含字符串字段license,整数字段value,浮点数字段distance

import numpy as np

car = np.dtype([('licence','S20'),('value','i4'),('distance','f4')])
cars = np.array([('AE86',15000,3452.23),('S666',12000,1232.933),('XX00',999,520.521)])
print(cars)


'''
[['AE86' '15000' '3452.23']
 ['S666' '12000' '1232.933']
 ['XX00' '999' '520.521']]
'''
numpy数组的属性

NumPy 数组的维数称为秩(rank),秩就是轴的数量,即数组的维度,一维数组的秩为 1,二维数组的秩为 2

未完待更…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值