Numpy初级
- Ndarray对象
- dtype对象
Numpy是数据分析的基础库,它支持大量的维度计算与矩阵运算。同时他也是一个运行速度非常快的数学库,主要用于数组计算,具有线性代数、傅里叶变换、随机数生成等功能。
Ndarray对象
Numpy最重要的一个特点就是其N维数组对象ndarray他是一系列同类型数据的集合,创建一个ndarray对象只需要调用Numpy的array函数即可。
numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
参数含义如下:
object
:数组。这里可以是多维的数组。
dtype
:数组元素的数据类型。Numpy有bool、int、uint、float、complex这几种数据类型。
copy
:对象是否需要复制。数组在创建时都会默认复制一块,防止不安全出现。
order
:创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)。
subok
:默认返回一个与基类类型一致的数组。
ndmin
:指定数组的最小维度。
注意:当array函数中的数组数据同时包含字符串、整数、浮点数,如果没有指定数据类型,则它会将所有数据转换成一种数据类型,转换的优先级为:字符串 > 浮点数 > 整数
例如:创建一个一维的ndarray对象,数组数据包含字符串、整数、浮点数,使用的数据类型为int类型。
代码如下:
import numpy as np
ns = np.array([1,3.5,"4"],dtype=int)
ns
结果为:
dtype对象
numpy的数值类型实际上是dtpye对象的实例,并对应唯一的字符,例如:numpy.bool、numpy.int32、numpy.float32、numpy.complex64等。dtype对象可通过dtype()函数进行创建。
numpy.dtype(object,align,copy)
参数含义如下:
object
:要转换为的数据类型对象。
align
:如果为True,填充字段使其类似C的结构体。
copy
:复制dtype对象,如果为False,则是对内置数据对象的引用。
例如:创建一个结构化数据类型并应用于ndarray对象。
代码如下:
import numpy as np
# student为结构化数据类型
# S为Str类型,"i1"表示int8
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
print(student)
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student)
print(a)
# 这里的类型字段名可以保存实际的列
print("第一列",a["name"],"第二列",a["age"],"第三列",a["marks"])
结果如下: