一.认识NumPy数组对象
ndarray对象中定义的重要属性如下:
(1)ndarray.ndim ---维度个数/数组轴的个数
(2)ndarray.shape ---数组维度
(3)ndarray.size ---数组元素总个数=shape属性中元组元素的乘积
(4)ndarray.dtype ---数组中元素类型的对象
(5)ndarray.itemsize ---数组中每个元素的字节大小
二.创建NumPy数组
(1)使用array()函数创建ndarray对象,在调用时传入一个列表或者元组.
a.创建一个一维数组
data1=np.array([1,2,3])
b.创建一个二维数组
data2=np.array([[1,2,3],[4,5,6]])
(2)通过zeros()创建元素都为0的数组,通过ones()创建元素都为1的数组.
a.创建全为0的数组
np.zeros((3,4))
b.创建全为1的数组
np.ones((3,4))
(3)通过empty()函数创建元素值全是随机数的数组
np.empty((5,2))
(4)通过arange()函数创建一个等差数组,功能类似range(),arange()函数返回的结果是数组而不是列表.
np.arange(1,20,5)
三.ndarray对象的数据类型
(1)查看数据类型
ndarray.dtype可创建表示数据类型的对象,想要获取数据类型名称,需访问name属性获取.
data_one=np.array([[1,2,3],[4,5,6]])
data_one.dtype.name
NumPy数据类型=类型名+元素位长的数字
(2)转换数据类型
通过astype()方法转换ndarray对象的数据类型
data=np.array([[1,2,3],[4,5,6]])
data.dtype
数据类型转换为float64
float_data=data.astype(np.float64)
float_data.dtype
四.ndarray的索引和切片
(1)整数索引和切片的基本使用
一维数组
arr=np.arange(8)
a.获取索引为5的元素
arr[5]
b.获取索引为3~5的元素,不包括5
arr[3:5]
多维数组 ---二维数组
arr2d=np.array([[1,2,3],[4,5,6],[7,8,9]])
获取索引为1的元素
arr2d[1]
获取二维数组的单个元素,通过arr[x,y]来实现 ---x表示行号,y表示列号
获取位于第0行第1列的元素
arr2d[0,1]
多维数组的切片
a.使用一个切片示例:
arr2d[:2]
b.使用两个切片示例:
arr2d[0:2,0:2]
c.切片与整数索引混合使用的示例:
arr2d[1,:2]
(2)花式(数组)索引的基本使用
用两个花式索引操作数组,会将第1个作为行索引,第2个作为列索引
获取索引为(1,1)和(3,2)的元素
demo_arr[[1,3],[1,2]]
五.利用NumPy数组进行数据处理
(1)将条件逻辑转为数组运算
where()函数
arr_x=np.array([1,5,7])
arr_y=np.array([2,6,8])
arr_con=np.array([True,False,True])
result=np.where(arr_con,arr_x,arr_y)
(2)数组排序
a.通过sort()方法实现对NumPy数组中的元素排序
arr=np.array([[6,2,7],[3,6,2],[4,3,2]])
arr.sort()
b.对任何一个轴上的元素排序,将轴的编号作为sort()方法的参数传入
arr=np.array([[6,2,7],[3,6,2],[4,3,2]])
沿着编号为0的轴对元素排序
arr.sort(0)
(3)检索数组元素
a.all()函数用于判断整个数组中的元素的值是否全部满足,满足条件返回True,否则返回False
arr=np.array([[1,-2,-7],[-3,6,2],[-4,3,2]])
arr的所有元素是否都大于0
np.all(arr>0)
b.any()函数用于判断整个数组中的元素至少有一个满足条件就返回True,否则就返回False
arr=np.array([[1,-2,-7],[-3,6,2],[-4,3,2]])
arr的所有元素是否有一个大于0
np.any(arr>0)
六.随机数模块
a.随机生成一个二维数组
np.random.rand(3,3)
rand()函数作用是随机生成N维浮点数组
b.seed()函数可保证生成随机数具有可预测性,就是说产生的随机数相同
numpy.random.seed(seed=None)
只有一个seed参数,用于指定随机数生成时所用算法开始的整数值
ps:调用seed()函数时,传递给seed参数的值相同,则每次生成的随机数一样,
当传递参数不同或不传递参数时,seed()函数作用和rand()函数相同,即多次生成随机数且每次生成的随机数都不同