NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵。
Numpy中的数据类型
数据类型 | 名称 |
inti | 由所在平台决定其大小的整数(一般为int32或int64) |
int8 | 一个字节大小,-128 至 127 |
int16 | 整数,-32768 至 32767 |
int32 | 整数,-2 ** 31 至 2 ** 32 -1 |
int64 | 整数,-2 ** 63 至 2 ** 63 - 1 |
uint8 | 无符号整数,0 至 255 |
uint16 | 无符号整数,0 至 65535 |
uint32 | 无符号整数,0 至 2 ** 32 - 1 |
uint64 | 无符号整数,0 至 2 ** 64 - 1 |
float16 | 半精度浮点数:16位,正负号1位,指数5位,精度10位 |
float32 | 单精度浮点数:32位,正负号1位,指数8位,精度23位 |
float64/float | 双精度浮点数:64位,正负号1位,指数11位,精度52位 |
bool | 用一个字节存储的布尔类型(True或False) |
complex64 | 复数,分别用两个32位浮点数表示实部和虚部 |
complex128或complex | 复数,分别用两个64位浮点数表示实部和虚部 |
Numpy数组的秩、维、轴
在numpy中数组的维数也称为秩,比如一维数组的秩就是一,二维数组的秩就是二。轴就是numpy数组中的一维数组,所以从数量上来说numpy数组的轴的数量与维数的数量和秩的数量相同。
ndarray对象属性简介
ndarray对象是numpy数组中最常用的对象,下面对ndarray对象的常用属性做简要介绍:
l ndarray.size:返回数组中元素的总个数;
l ndarray.dtype:表示数组中元素类型的对象;
l ndarray.ndim:表示数组的维数(维数、秩、轴在数量上相等)
l ndarray.shape:表示数组的维度,即数组有几行几列
l ndarray.itemsize:表示数组中每个元素有多少字节
创建numpy数组
Ø 创建全0数组
>>>from numpy import *
>>>arr = zeros(3)
>>>arr
array([0., 0., 0.])
>>>arr.shape
(3,)
>>>arr = zeros((2, 3), dtype = int)#指定创建int类型的全0数组
>>>arr
array([[0, 0,0],
[0, 0, 0]])
>>>arr.dtype
dtype('int64')
>>>arr.dtype.itemsize
8
>>>arr.shape
(2,3)
>>>a = (3, 4)
>>>arr = zeros(a)
>>>arr
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
>>>arr.shape
(3,4)
>>>arr= zeros(a,dtype=int)
>>>arr
array([[0, 0,0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
>>>arr= zeros_like(arr)
>>>arr
array([[0, 0,0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
>>>arr= ones_like(arr)#创建与arr维度相同的全1数组
>>>arr
array([[1, 1,1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]])
Ø 创建全1数组
>>>arr= ones(3)#创建1行3列的前1数组
>>>arr
array([1., 1., 1.])
>>>arr.shape#输出数组维度
(3,)
>>>arr= ones((2,3))#表示创建2行3列的全1数组
>>>arr#发现输出的数组元素后面都带有一个点,这表示数据的浮点型数据类型,可以使用下面的方式查看数组中数据类型
array([[1., 1., 1.],
[ 1., 1., 1.]])
>>>arr.dtype
dtype('float64')
>>>#查看数组中每个元素占多少字节
>>>arr.dtype.itemsize
8
>>>#要创建自己需要的数据类型的numpy数组可以使用下面的方式在创建数组的时候指定数据类型
>>>arr= ones((2,3),dtype=int)#创建两行三列的数组并指明数据类型为int
>>>arr
array([[1,1, 1],
[1, 1, 1]])
>>>arr= ones( (2,2,3), dtype=int16 ) #参数中第一个2表示轴数,后面的2和3分别表示行数和列数,同时执行了数据类型
>>>arr
array([[[1,1, 1],
[1, 1, 1]],
[[1, 1, 1],
[1, 1, 1]]], dtype=int16)
Ø 创建一般数组
>>>arr= array([1,2,3])
>>>arr
array([1, 2,3])
>>>arr.dtype
dtype('int64')
>>>arr= array([0.3,1.5,3.5])
>>>arr.dtype
dtype('float64')
>>>arr= array( [ (1.2,2.3,3.4), (1.6,2.8,3.1) ] )
>>>arr
array([[1.2, 2.3, 3.4],
[ 1.6, 2.8, 3.1]])
>>>arr = array( [ [1,2], [3,4] ], dtype=complex)
>>>arr
array([[1.+0.j, 2.+0.j],
[ 3.+0.j, 4.+0.j]])
Ø arange()创建数组
>>>arange(0,20,5)#从0开始每隔5选择一个数据,到20截止,不包括20
array([ 0, 5, 10, 15])
>>> arange(0,2,0.5) #从0开始每隔0.5选择一个数据,到2截止
array([ 0., 0.5, 1. , 1.5])
Ø Linspace函数创建数组
>>>numpy.linspace(0, 1, 5)#在0—1之间选择5个均分的数据,包括1
array([ 0. , 0.25, 0.5 , 0.75, 1. ])