📅  最后修改于: 2023-12-03 15:03:19.086000             🧑  作者: Mango
Numpy 是一个Python科学计算的重要库,它提供了一种数组类型ndarray
,也提供了一个矩阵类型matrix
。虽然两者看起来很相似,但它们之间确有一些重要的区别。
ndarray 是 Numpy 库中最基本的对象,是一个多维数组对象。它有以下的特点:
下面是如何创建一个 ndarray 对象,并向其中添加一些数据:
import numpy as np
# 创建一个 2x3 的二维数组
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
# 输出:
# [[1 2 3]
# [4 5 6]]
matrix
是一个二维的数组的特殊类型,它有以下的特点:
下面是如何创建一个 matrix
对象,并向其中添加一些数据:
import numpy as np
# 创建一个 2x3 的矩阵
a = np.matrix([[1, 2, 3], [4, 5, 6]])
print(a)
# 输出:
# [[1 2 3]
# [4 5 6]]
注意:矩阵的创建方式和数组非常相似,但是在矩阵中使用逗号来分隔行,而不是数组中使用中括号。
虽然 ndarray
和 matrix
看起来很相似,但在功能和用法上有很多区别:
ndarray
对象可以有任意多维,而 matrix
则是二维的,它只能处理矩阵运算。
ndarray
对象支持元素级别的乘法(也被称为Hadamard乘积),而 matrix
对象支持矩阵乘法运算。
# 数组的乘法
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])
c = a * b
print(c)
# 输出:
# [[ 7 16 27]
# [40 55 72]]
# 矩阵的乘法
a = np.matrix([[1, 2, 3], [4, 5, 6]])
b = np.matrix([[7, 8], [9, 10], [11, 12]])
c = a @ b
print(c)
# 输出:
# [[ 58 64]
# [139 154]]
ndarray 对象可以使用 T 属性进行矩阵的转置,而 matrix 对象则可以使用特殊的 T() 方法进行转置。
# 数组的转置
a = np.array([[1, 2, 3], [4, 5, 6]])
b = a.T
print(b)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]
# 矩阵的转置
a = np.matrix([[1, 2, 3], [4, 5, 6]])
b = a.T()
print(b)
# 输出:
# [[1 4]
# [2 5]
# [3 6]]
ndarray
是 Numpy 库中最基本的对象,是一个多维数组对象,可以有任意多维;matrix
是一个二维的数组的特殊类型,它只能处理矩阵运算,支持矩阵乘法运算;ndarray
对象支持元素级别的乘法,而 matrix
对象不支持;