gpt4 book ai didi

python - numpy 数组大小的困惑

转载 作者:行者123 更新时间:2023-12-01 02:10:36 26 4
gpt4 key购买 nike

Python numpy 数组“大小”让我很困惑

a = np.array([1,2,3])
a.size = (3, )
------------------------
b = np.array([[2,1,3,5],
[2,2,5,1],
[3,6,99,5]])
b.size = (3,4)

'b' 有意义,因为它每行有 3 行 4 列但是 'a' size = (3, ) 怎么样?因为它有 1 行 3 列,所以不应该是 (1,3) 吗?

最佳答案

您应该抵制将 numpy 数组视为具有的冲动,而是将它们视为具有维度形状。这是区分 np.array 和 np.matrix 的重要一点:

x = np.array([1, 2, 3])
print(x.ndim, x.shape) # 1 (3,)

y = np.matrix([1, 2, 3])
print(y.ndim, y.shape) # 2 (1, 3)

n-D 数组只能使用 n 个整数来表示其形状。因此,一维数组仅使用 1 个整数来指定其形状。

实际上,一维和二维数组之间的组合计算对于 numpy 来说不是问题,而且由于 Python 3.5 中引入了 @ 矩阵运算,因此语法上很干净。因此,很少需要借助 np.matrix 来满足查看预期行数和列数的冲动。

在需要 2 维的极少数情况下,您仍然可以使用 numpy.array 进行一些操作:

a = np.array([1, 2, 3])[:, None]  # equivalent to np.array([[1], [2], [3]])
print(a.ndim, a.shape) # 2 (3, 1)

b = np.array([[1, 2, 3]]) # equivalent to np.array([1, 2, 3])[:, None].T
print(b.ndim, b.shape) # 2 (1, 3)

关于python - numpy 数组大小的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48727120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com