2-科学计算库NumPy

一.认识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()函数相同,即多次生成随机数且每次生成的随机数都不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值