python中numpy模块下函数array()和mat()的区别

本文对比了mat()与array()函数在生成矩阵时的不同数据格式要求及矩阵运算的区别。mat()函数支持字符串分号分割或列表逗号分割的数据格式,而array()仅支持列表形式。在矩阵计算方面,mat()函数支持*与.dot()进行矩阵乘法,array()函数则仅支持.dot()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. mat()函数与array()函数生成矩阵所需的数据格式有区别

(1) mat()函数中数据可以为字符串以分号(;)分割,或者为列表形式以逗号(,)分割。而array()函数中数据只能为后者形式。

如mat()函数生成矩阵时一下两种方式都正确。

  和   

(2) 而array()函数生成矩阵时数据只能为列表形式。


2. mat()函数与array()函数生成的矩阵计算方式不同

(1) mat()函数中矩阵的乘积可以使用(星号) *  或 .dot()函数,其结果相同。而矩阵对应位置元素相乘需调用numpy.multiply()函数。

(2) array()函数中矩阵的乘积只能使用 .dot()函数。而星号乘 (*)则表示矩阵对应位置元素相乘,与numpy.multiply()函数结果相同。

如生成以下矩阵:

a = numpy.mat([[1, 3], [5, 7]])
b = numpy.mat([[2, 4], [6, 8]])
c = numpy.array([[1, 3], [5, 7]])

d = numpy.array([[2, 4], [6, 8]])

a * b = a.dot(b) = c.dot(d) ,其表示矩阵相乘

而 numpy.multiply(a, b) = c * d = numpy.multiply(c, d) ,其表示矩阵对应位置元素相乘

<think>好的,用户想了解PythonNumPy库的常用函数列表及用法。首先,我需要回忆NumPy的核心功能,比如数组创建、数学运算、统计函数、线性代数、数组操作随机数生成等。然后,根据这些分类列举常用函数,并给出简单的例子说明用法。 用户提供的引用中有提到np.maximum()np.all()函数,我应该确保涵盖这些例子。同时,要注意使用正确的LaTeX格式,行内公式用$...$,独立公式用$$...$$。比如,数学表达式如数组形状$(m,n)$需要用行内格式。 接下来,我需要组织内容结构,分点介绍每个类别下的函数,确保每个函数都有简要说明代码示例。例如,数组创建部分可以包括np.array()np.zeros()等;数学运算部分包括np.add()np.sin()等。 还需要注意引用标注,在相关段落末尾添加[^1]、[^2]、[^3],但根据用户提供的引用内容,可能需要在涉及函数用法的地方添加引用。不过用户提供的引用内容比较有限,可能需要适当调整引用位置。 最后,生成相关问题,考虑用户可能进一步想知道如何优化性能、处理大型数组或特定领域的应用,比如数据科学中的NumPy使用。确保问题与主题相关,帮助用户深入理解。</think>### Python NumPy 常用函数列表及用法 NumPyPython 中用于科学计算的核心库,提供高效的多维数组对象及数学工具。以下是常用函数分类及示例: --- #### 1. **数组创建** - **`np.array()`**:将列表或元组转换为数组 ```python import numpy as np arr = np.array([1, 2, 3]) # 一维数组 matrix = np.array([[1, 2], [3, 4]]) # 二维数组 ``` - **`np.zeros()` / `np.ones()`**:创建全零或全一数组 ```python zero_arr = np.zeros((2, 3)) # 形状为$(2,3)$的零矩阵 ones_arr = np.ones(5) # 长度为5的一维全一数组 ``` - **`np.arange()`**:生成等差序列 ```python range_arr = np.arange(0, 10, 2) # 输出: [0, 2, 4, 6, 8] ``` --- #### 2. **数学运算** - **`np.add()` / `np.subtract()`**:逐元素加减 ```python a = np.array([1, 2]) b = np.array([3, 4]) sum_arr = np.add(a, b) # 输出: [4, 6] ``` - **`np.sin()` / `np.cos()`**:三角函数运算 ```python angles = np.array([0, np.pi/2]) sin_values = np.sin(angles) # 输出: [0.0, 1.0] ``` - **`np.dot()`**:矩阵乘法或点积 ```python mat1 = np.array([[1, 2], [3, 4]]) mat2 = np.array([[5, 6], [7, 8]]) product = np.dot(mat1, mat2) # 输出: [[19, 22], [43, 50]] ``` --- #### 3. **统计函数** - **`np.mean()` / `np.median()`**:计算均值或中位数 ```python data = np.array([1, 2, 3, 4]) avg = np.mean(data) # 输出: 2.5 median = np.median(data) # 输出: 2.5 ``` - **`np.max()` / `np.min()`**:极值计算 ```python max_val = np.max(data) # 输出: 4 min_val = np.min(data) # 输出: 1 ``` - **`np.std()` / `np.var()`**:标准差与方差 ```python std_dev = np.std(data) # 输出: 1.118 variance = np.var(data) # 输出: 1.25 ``` --- #### 4. **数组操作** - **`np.reshape()`**:改变数组形状 ```python arr = np.arange(6) reshaped = arr.reshape(2, 3) # 转换为$(2,3)$矩阵 ``` - **`np.concatenate()`**:合并数组 ```python arr1 = np.array([1, 2]) arr2 = np.array([3, 4]) combined = np.concatenate([arr1, arr2]) # 输出: [1, 2, 3, 4] ``` - **`np.split()`**:分割数组 ```python arr = np.arange(9) sub_arrays = np.split(arr, 3) # 分为3个等长子数组 ``` --- #### 5. **随机数生成** - **`np.random.rand()`**:均匀分布随机数 ```python rand_arr = np.random.rand(2, 2) # 生成$(2,2)$的[0,1)随机矩阵 ``` - **`np.random.normal()`**:正态分布随机数 ```python normal_samples = np.random.normal(0, 1, 100) # 均值0,标准差1,100个样本 ``` --- #### 6. **逻辑运算** - **`np.where()`**:条件筛选 ```python arr = np.array([1, 3, 0, 5]) result = np.where(arr > 2, arr, -1) # 输出: [-1, 3, -1, 5] ``` - **`np.all()` / `np.any()`**:逻辑判断 ```python bool_arr = np.array([True, False, True]) all_true = np.all(bool_arr) # 输出: False any_true = np.any(bool_arr) # 输出: True ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值