最近使用到numpy库比较多,所以就想着做一个常用解析来梳理一下numpy的常用功能
numpy简介
numpy是常用的科学计算标准库,它与pandas的区别在于,pandas更擅长于数据挖掘,numpy擅长于科学计算。
numpy 库处理的最基础数据类型是由同种元素构成的多维数组 (ndarray), 简称” 数组"。
创建数组
numpy常用的创建数组方法有以下几个
import numpy as np
np.array([x,y,z],dtype=int)#[x,y,z]为列表或元组,dtype为元素类型
np.arrange(x,y,z)#创建一个有x到y,z为步长的数组
np.random.rand(m,n)#创建一个m行n列的随机数组
np.ones(m,n)#创建一个m行n列的全1数组
np.empty(m,n)#创建一个m行n列的全0数组
数组的基本属性
属性 | 描述 |
---|---|
ndarray.ndim | 数组的维数 |
ndarray.shape | 数组在每个维度上大小的整数数组 |
ndarray.size | 数组元素的总个数 |
ndarray.dtype | 数组元素的数据类型,dtype类型可以用于创建数组 |
ndarray.itemsize | 数组每个元素的字节大小 |
ndarray.data | 包含实际数组元素的缓冲区地址 |
ndarray.flat | 数组元素的迭代器 |
import numpy as np
b=np.random.rand(2,2)
print(b)
print("b.ndim={}".format(b.ndim))
print("b.shape={}".format(b.shape))
print("b.size={}".format(b.size))
print("b.dtype={}".format(b.dtype))
print("b.itemsize={}".format(b.itemsize))
print("b.data={}".format(b.data))
print("b.flat={}".format(b.flat))
- 运行结果
[[0.72938032 0.71789695]
[0.23302267 0.52124566]]
b.ndim=2
b.shape=(2, 2)
b.size=4
b.dtype=float64
b.itemsize=8
b.data=<memory at 0x000002B081AF0E48>
b.flat=<numpy.flatiter object at 0x000002B0826DC6A0>
数组的切片
数组的切片方式与列表的切片方式大致相同
方法 | 描述 |
---|---|
x[i] | 索引的i个元素 |
x[-i] | 从后向前索引的i个元素 |
x[n:m] | 默认步长为1,从前往后索引,不包含m |
x[-n:-m] | 从后往前索引 |
x[n:m :j] | 指定i步长由n到m的索引 |