Numpy
numeric python 数字化的python
ndarray
—- 具有六个参数,它们分别是:
shape: 数组的形状;
dtype: 数据类型;
buffer: 对象暴露缓存区接口;
offset: 数组数据的偏移量;
strides: 数据步长
order:{'C','F'},以行或列为主排列顺序
一、在numpy中,我们主要通过以下5种途径创建数组:
1.从Python数组结构列表,元组等转换;
2.使用np.arange,np.ones,np.zeros等numpy原生方法;
3.从存储空间读取数组;
4.通过使用字符串或缓冲区从原始字节创建数组;
5.使用特殊函数,如random
1.从列表或元组转换
使用numpy.array将列表或元组转换为ndarray数组:
numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)
参数:
1)object: 列表、元组等
2)dtype: 数据类型。默认对象所需的最小类型
3)copy: 布尔类型,默认为True,表示复制对象
# 例:
import numpy as np
l=list('123456')
nd2 = np.array(l)
print(nd2)
# ['1' '2' '3' '4' '5' '6']
type(nd2)
# numpy.ndarray
2.1 arange方法创建
arange()的功能是在给定区间内创建一系列均匀间隔的值:
numpy.arange(start,stop,step,dtype=None)
设置值所在区间,这里为 '[start,stop)',这是一个半开半闭区间,step为步长用于设置值之间的间隔,dtype为设置值类型
# 例:
import numpy as np
nd3 = np.arange(0,150,step=5,dtype=np.float32)
display(nd3.shape,nd3.dtype)
# (30,)
# dtype('float32')
nd3
# array([ 0., 5., 10., 15., 20., 25., 30., 35., 40., 45., 50.,
55., 60., 65., 70., 75., 80., 85., 90., 95., 100., 105.,
110., 115., 120., 125., 130., 135., 140., 145.], dtype=float32)
# 将数组的值到过来
np.arange(10,0,step=-1)
# array([10, 9, 8, 7, 6, 5, 4, 3, 2, 1])
2.2 linspace 方法创建
linspace 用于在指定区间内返回间隔均匀的值:
numpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
1)start: 序列的起始值
2)stop: 序列的结束值
3)num: 生成的样本数,默认为50
4)endpoint: 布尔值,默认为真,表示最后一个样本包含在序列内
5)retstep: 布尔值,如果为真,返回间距,默认为False
6)dtype: 数组的类型
# 例:
import numpy as np
nd4 = np.linspace(0,15,num=16)
nd4
# array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.,
13., 14., 15.])
nd4.shape
# (16,)
# 不使用dtype属性该表默认的数据类型,就用形如以下的方式:
numpyd.astype(np.float32)
nd4.astype(np.int)
# array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
2.3 ones方法创建
ones用于快速创建数值全部为1的多维数组:
numpy.ones(shape,dtype=None,order='C')
1)shape: 用于指定数组形状
2)dtype: 数据类型
3)order:{'C','F'},按行或列的方式存储数组
# 例:
nd5 = np.ones(shape=(2,2,3)
# array([[[1., 1., 1.],
[1., 1., 1.]],
[[1., 1., 1.],
[1., 1., 1.]]])
nd5.type
# dtype('float64')
2.4 zeros 方法创建
zeros和ones方法非常类似,不同在于,这里全部填充的0:
numpy.zeros(shape,dtype=None,order='C')
1)shape: 用于指定数组形状
2)dtype: 数据类型
3)order:{'C','F'},按行或列的方式存储数组
# 例:
nd6 = np.zeros(shape=(2,2,3)
# array([[[0., 0., 0.],
[0., 0., 0.]],
[[0., 0., 0.],
[0., 0., 0.]]])
nd6.type
# dtype('float64')
2.5 full方法创建
<