Numpy的部分功能
1.用于数据整理和清理、子集构造和过滤、转换等快速的矢量化数组运算
2.常用的数组算法,如排序、唯一化、集合运算等3.高效的描述统计和数据聚合/摘要运算
4.用于异构数据集的合并/连接运算的数据对齐和关系型数据运算
5.将条件逻辑表述为数组表达式
6.数据的分组运算(聚合、转换、函数应用等)
一、ndarray:一种多维数组
1.创建简单的ndarray
>>> data=[1,2,3,4]
>>> data
[1, 2, 3, 4]
>>> arr=np.array(data)
>>> arr
array([1, 2, 3, 4])
>>> arr.shape
(4,)
#shape是各维度大小的元组
>>> arr.dtype
dtype('int64')
#dtype是说明数组数据类型的对象
2.创建一个多维数组(由嵌套序列转换而来)
>>> data1=([1,2,3,4],[1.1,2.2,3.3,4.4])
>>> data1
([1, 2, 3, 4], [1.1, 2.2, 3.3, 4.4])
>>> arr1=np.array(data1)
>>> arr1
array([[ 1. , 2. , 3. , 4. ],
[ 1.1, 2.2, 3.3, 4.4]])
>>> arr1.ndim
2
>>> arr1.shape
(2, 4)
>>> arr1.dtype
dtype('float64')
3.使用numpy的函数创建ndarray
>>> np.zeros(10)
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
>>> np.ones(20)
array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1.])
>>> np.arange(15)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
函数 说明
array 将输入数据转换为ndarray(要么推断出dtype,要么显式指定dtype)
asarray 将输入转换为ndarray,如果输入本身是ndarray就不进行复制
arange 类似于内置的range,返回一个ndarray
ones、ones_like 根据指定的形状和dtype创建一个全1数组。ones_like以另一个数组为参数,并根据形状和dtype创建一个全1数组
zeros、zeros_like 同上,创建全0数组
empty、empty_like 创建新数组,只分配内存空间但不填充任何值
eye、identity 创建一个正方的NXN的数组(对角线为1,其余全0)
4.ndarray的数据类型
类型 | 类型代码 | 说明 |
int8、uint8 | i1、u1 | 有符号和无符号8位整型(1字节) |
int16、uint16 | i2、u2 | 有符号和无符号16位整型(2字节) |
int32、uint32 | i4、u4 | 有符号和无符号32位整型(4字节) |
int64、uint64 | i8、u8 | 有符号和无符号64位整型(8字节) |
float16 | f2 | 半精度浮点数 |
float32 | f4、f | 单精度浮点数 |
float64 | f8、d | 双精度浮点数 |
float128 | f16、g | 扩展精度浮点数 |
complex64 | c8 | 分别用两个32位表示的复数 |
complex128 | c16 | 分别用两个64位表示的复数 |
complex256 | c32 | 分别用两个128位表示的复数 |
bool | ? | 布尔型 |
object | O | python对象 |
string_ | Sn | 固定长度字符串,每个字符1字节,如S10 |
unicode_ | Un | 固定长度Unicode,字节数由系统决定,如U10 |
可使用astype来显式转换dtype
>>> arr=np.array([1.1,2.2,3.3,4.4])
>>> arr.dtype
dtype('float64')
>>> arr.astype(np.int64)
array([1, 2, 3, 4])