第二章总结

本文介绍了NumPy库中的核心对象ndarray,包括其shape和dtype属性。讲解了如何创建一维和二维数组,以及如何生成随机数数组。此外,还详细阐述了数组的索引、切片、条件逻辑的数组运算、统计汇总方法如sum、mean、min、max,以及排序和布尔型索引。最后提到了随机数生成和numpy.random模块的基本使用。
摘要由CSDN通过智能技术生成

第二章、科学计算库numpy

NumPy数组对象

NumPy中最重要的一个特点就是其N维数组对象,即ndarrayarray)对象,该对象可以执行一些科学计算。

array.shape:这是一个整数的元组,表示每个维度上数组的大小。例如一个n行和m列的数组,他的shape属性为(n,m)。

array.dtype:描述数组中元素类型的对象,例如numpy.int32、numpy.float64。

创建NumPy数组

#创建一维数组
import numpy as np
data1=np.array([1,2,3)]

#创建二维数组
data2=np.array([[1,2,3],[4,5,6]])

创建元素值全是随机数的数组

np.empty((5,2))

用arrange()函数创建等差数组

np.arange(1, 20, 5)

用array.dtype创建表示数据类型的对象,dtype可以指定数据类型的长度

data_one = np.array([[1, 2, 3], [4, 5, 6]])

ndarray对象的数据类型可以通过astype()方法进行转

data = np.array([[1, 2, 3], [4, 5, 6]]) 
data.dtype
#数据类型转换为float64
float_data = data.astype(np.float64)
float_data.dtype

array的索引和切片

arr = np.arange(8)
# 获取索引为5的元素
arr[5]
# 获取索引为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]

切片

维数组的切片是沿着行或列的方向选取元素的,我们可以传入一个切片,也可以传入多个切片,还可以将切片与整数索引混合使用。

eg:
arr2d[:2]

#两个切片
arr2d[0:2, 0:2

#切片与整数索引混合使用
arr2d[1, :2]

布尔型索引

尔型索引指的是将一个布尔数组作为数组索引,返回的数据是布尔数组中True对应位置的值。

array([False, False,  
       True, False])

利用NumPy数组进行数据处理

将条件逻辑转为数组运算

NumPywhere()函数是三元表达式x if condition else y的矢量化版本。

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)

数组的统计汇总方法

  • sum:对数组中全部或某个轴向的元素求和
  • mean:算数平均值
  • min:计算组中的最小值
  • max:计算组中的最大值
  • argmin:表示最小值的索引
  • argmax:表示最大值的索引

数组排序

arr = np.array([[6, 2, 7], 
                [3, 6, 2], 
                [4, 3, 2]])
arr.sort()

检查数组元素

all()函数用于判断整个数组中的元素的值是否全部满足条件,如果满足条件返回True,否则返回False

arr = np.array([[1, -2, -7], 
                [-3, 6, 2], 
                [-4, 3, 2]])
# arr的所有元素是否都大于0
np.all(arr > 0)

any()函数用于判断整个数组中的元素至少有一个满足条件就返回True,否则就返回False

arr = np.array([[1, -2, -7], 
                [-3, 6, 2], 
                [-4, 3, 2]])
# arr的所有元素是否有一个大于0
np.any(arr > 0)

随机数模块

# 随机生成一个二维数组
np.random.rand(3, 3)

seed( )函数可以保证生成的随机数具有可预测性,也就是说产生的随机数相

numpy.random.seed(seed=None)

可以生成服从多种概率分布随机数的函数:

  • seed:生成随机数的种子
  • rand:产生均匀分布的样本值
  • randint:从给定的上下限范围内随机选取整数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值