Numpy 基础
数组的创建方式
ndarray : N维数组,是Numpy的数据结构,可用ndim,size,shape等做属性进行查看。
np.array()
- 是Numpy中ndarray的一个最基本的数组创建方式。
np.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)
- object: 数组或嵌套的数列,列表或元组
- dtype:数组元素的数据类型,默认值None
- copy:对象是否需要复制,默认值True
- order:顺序{‘K’,‘A’,‘C’,‘F’},C为行方向,F为列方向,K和A为任意方向
- subok:默认返回一个与基类类型一致的数组,默认False
- ndmin:指定生成数组的最小维度,值为int
//Python的多层list需要for循环嵌套运算,数组可以直接进行运算
import numpy as np
a=[1,2,3,4,5,6]
type(a)
//list
b=np.array(a)
type(b)
//numpy.ndarray
b/2
//array([0.5, 1. , 1.5, 2. , 2.5, 3. ])
二维
import numpy as np
a=[[1,2,3],[4,5,6]]
b=np.array(a)
b/2
//array([[0.5, 1. , 1.5],
// [2. , 2.5, 3. ]])
数组结构转换
- 可以用np.array().tolist()实现数组结构转换
import numpy as np
a=[1,2,3,4,5,6]
b=np.array(a)
b.tolist()
//[1, 2, 3, 4, 5, 6]
c=[[1,2,3],[4,5,6]]
d=np.array(c)
d.tolist()
//[[1, 2, 3], [4, 5, 6]]
数据类型的指定
- dtype参数的设置
用"dtype= "设置数据类型
a=[1,2,3,4,5,6]
np.array(a,dtype=int)
//array([1, 2, 3, 4, 5, 6])
np.array(a,dtype=float)
//array([1., 2., 3., 4., 5., 6.])
np.array(a,dtype='uint')
//array([1, 2, 3, 4, 5, 6], dtype=uint32)
dtype的指定有多种等效方法:
dtype='int’等效于dtype=int等效于dtype=np.int
dtype='int8’等效于dtype='i1’等效于dtype=np.int8
dtype='uint8’等效于dtype='u1’等效于dtype=np.uint8
可以用np.sctypeDict.keys()来查看所有数据类型的字符码
- 在默认数据类型的基础上,增加一些数据子类型可以减少一部分的储存空间的浪费。(等效于量体裁衣,可以提升运行效率)
import numpy as np
//np.array().nbytes 求字节数
np.array([[1,2,3],[4,5,6]],dtype=int).nbytes
//24
np.array([[1,2,3],[4,5,6]],dtype='int32').nbytes
//24
np.array([[1,2,3],[4,5,6]],dtype='int16').nbytes
//12
np.array([[1,2,3],[4,5,6]],dtype='int8').nbytes
//6
数组维度指定
用"ndmin= " 指定维度
import numpy as np
//一维数组到二维数组
np.array([1,2,3,4,5,6],ndmin=2)
//array([[1, 2, 3, 4, 5, 6]])
//二维数组到三维数组
np.array([[1,2,3],[4,5,6]],ndmin=3)
//array([[[1, 2, 3],
// [4, 5, 6]]])
- 强制数据类型转换
1.维度和数据类型双指定
np.array([[1,2,3],[4,5,6]],dtype='float16',ndmin=3)
//array([[[1., 2., 3.],
// [4., 5., 6.]]], dtype=float16)
2.用astype()方法强制类型转换
np.array([[1,2,3],[4,5,6]],dtype='float16',ndmin=3).astype('int8')
//array([[[1, 2, 3],
[4, 5, 6]]], dtype=int8)
小结
ndarray是一个类,默认构造函数是np.array(),其他还有np.arange(), np.linspace(), np.ones()