目录
numpy数组(一)
数组的创建
array创建
numpy模块的array函数可以生成多维数组。例如:如果要生成一个二维数组,需要向array函数传递一个列表类型的参数。每一个列表元素是一维的ndarray类型数组,作为二维数组的行。另外,通过ndarray类的shape[n]形式获得数组每一维的元素个(元组形式),也可以通过shape[n]形式获得每一维的元素个数,其中n是维度,从0开始。
语法格式:
numpy.array(object, dtype=None,copy=True,order=None,subok=False,ndmin=0)
代码:
# 导入numpy模块
import numpy as np
# 使用array函数创建一维、二维、三维数组
a = np.array([3,8,5,9]) # 创建一维数组
print(a)
b = np.array([[1, 2, 3],[4, 5, 6]]) # 创建二维数组
print(b)
c = np.array([[[1,2,3]]]) # 创建三维数组
print(c)
# array函数中dtype的使用
d=np.array([3,4,5],dtype=float) # dtype可确定列表中数据的类型
print(d)
# array函数中ndimn的使用
e=np.array([1,2,3],dtype=float,ndmin=3) # 所创建的数组的维度、
print(e)
arange参数说明:
参数 | 描述 |
---|---|
start | 起始值,默认为0 |
stop | 终止值(不包含) |
step | 步长,默认为1 |
dype | 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型 |
代码:
# 导入模块
import numpy as np
# range的使用 range(start, end, step)[start,end)
a=list(range(1, 10)) # 步长默认为1
print(a)
b=list(range(10)) # 默认从0开始,步长为1
print(b)
c=list(range(1,10, 3))
print(c)
# arange创建数组
# 使用arange创建1,10的数组
a = np.arange(1,11)
print(a)
# 设置step
b=np.arange(1, 11, 2)
print(b)
# 设置dtype
c=np.arange(10,20,2,dtype=float)
print(c)
随机数创建
[0,1)之间的随机数
numpy.random.random(size=None)该方法返回[0,1)范围的随机数。
代码:
# 导入模块
import numpy as np
def randomText():
# 使用random创建一维数组 [0.0 ,1.0)
a = np.random.random(size=6)
print(a)
# 创建二维数组
b = np.random.random(size=(3, 5))
print(b)
# 创建三维数组
c = np.random.random(size=(2, 3, 5))
print(c)
randomText()
随机整数
numpy.random.randint()该方法有low、high、size三个参数。默认high是None,如果只有low,那范围就是[0,low)。如果有high,范围就是[low,high)。
numpy.random.randint()的使用:
# 导入模块
import numpy as np
def randomIntText():
# 随机整数0-5 一维
a=np.random.randint(6,size=7)
print(a)
# 生成5-10之间的随机整数 二维
b=np.random.randint(5,11,size=(3,4))
print(b)
# 生成5-10之间的随机整数 三维
c=np.random.randint(5,11,size=(3,4,5))
print(c)
# dtype的使用
d=np.random.randint(10, size=5)
print("默认的dtype:", d.dtype) # 一般使用默认即可
randomIntText()
标准正态分布(期望为0,方差为1)
numpy.random.randn(d0,d1,d2……,dn) randn函数返回一个或一组样本,具有标准正态分布(期望为0,方差为1)。dn表格每个维度返回值为指定维度的array。
numpy.random.randn()的使用:
# 导入模块
import numpy as np
# 创建标准的正态分布 期望为0,方差为1
def randnText():
a = np.random.randn(4)
print(a)
# 创建二维的
b = np.random.randn(2,3)
print(b)
randnText()
一般正态分布(可指定期望与方差)
numpy.random.normal(loc=, scale=,size=) normal函数返回一个或一组样本,期望为loc,方差为scale的正态分布。
numpy.random.normal()的使用:
# 导入模块
import numpy as np
# 创建指定期望和方差的正态分布
def normalText():
a = np.random.normal(size=5) # 默认期望是loc=0.0 , 方差 scaLe=1.0
print(a)
# 指定期望和方差
b = np.random.normal(loc=2, scale=3, size=(2,3))
print(b)
randnText()
ndarray 对象
Numpy最重要的一个特点使其N维数组对象ndarray,它是一系列同类数据的集合,以0下标为开始进行集合中元素的索引。
ndarray对象用于存放同类型元素的多维数组。
ndarray中的每一个元素在内存中都有相同存储大小的区域。
ndarray内部由以下内容组成
<1>一个指向数据(内存或内存映射文件中的一块数据)的指针
<2>数据类型或dtype,描述在数组中的固定大小值的格子
<3>一个表示数组形状(shape)的元组,表示个维度大小的元组。
Numpy的数组中比较重要ndarray对象属性有:
属性 | 说明 |
---|---|
ndarray.ndim | 秩,即轴的数量或维度的数量 |
ndarray.shape | 数组的维度,对于矩阵,n行m列 |
ndarray.size | 数组元素的总个数,相当于.shape中n*m的值 |
ndarray.dtype | ndarray对象的元素类型 |
ndarray.itemsize | ndarray对象中每个元素大大小,以字节为单位 |
ndarray.flags | ndarray对象的内存信息 |
ndarray.real | ndarray元素的实部 |
ndarray.imag | ndarray元素的虚部 |
ndarray.data | 包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。 |
# 导入numpy
import numpy as np
# 创建一维数组
a = np.array([1,2,3,4])
print(a)
# 创建二维数组
b=np.random.randint(4,10,size=(2,3))
print(b)
# 创建三位数组
c=np.random.randn(2,3,4)
print(c)
# ndim 属性
print('ndim:',a.ndim,b.ndim,c.ndim)
# shape属性
print('shape:',a.shape,b.shape,c.shape)
# dtype属性
print('dtype:',a.dtype,b.dtype,c.dtype)
# size元素的总个数
print('size:',a.size,b.size,c.size)
# itemsize每个元素的大小(字节)