【问题标题】:Difference between numpy.zeros(n) and numpy.zeros(n,1) [duplicate]numpy.zeros(n) 和 numpy.zeros(n,1) 之间的区别 [重复]
【发布时间】:2017-03-04 10:48:08
【问题描述】:

有什么区别

numpy.zeros(n)

和

numpy.zeros(n,1)?

第一条语句的输出是

[0 0 ..... n 次]

而第二个是

([0] [0]

.... n 行)

【问题讨论】:

  • numpy.zeros(n, 1) 出现错误。我猜你的意思是numpy.zeros((n,1))。
  • 有关(n,) shape 和(n,1) 之间区别的详细说明,请查看stackoverflow.com/questions/22053050/…(以及其他此类问题)。
  • @hpaulj:我什至可以说这是一个完美的候选者,可以将这个问题作为一个欺骗来结束

标签: python numpy


【解决方案1】:

第一个参数表示数组的形状。标量参数意味着“平面”数组(向量),而元组参数被解释为张量的维度。因此,如果参数是元组 (m,n),numpy.zeros 将返回一个包含 m 行和 n 列的矩阵。在您的情况下,它返回一个包含n 行和1 列的矩阵。

尽管您的两种情况在某种意义上是等价的,但需要向量作为输入的线性代数例程可能会期望类似于第一种形式。

【讨论】:

  • numpy 对待一维矩阵 (n,) 的处理方式不同于处理具有单维 (n, 1) 的二维矩阵。
  • @TWReever:感谢您澄清我的最后声明。
  • 肯定需要一些时间来适应,特别是如果习惯了更传统的处理方式,比如在 Matlab 中。
  • MATLAB 在其唯一的数据结构是 2d 矩阵的时代仍然有化石。 numpy 生活在带有标量和列表的世界中。它的数组可以有任意数量的维度 - 0,1,2....
猜你喜欢
  • 2022-05-04
  • 2011-05-29
  • 2012-11-12
  • 2016-06-24
  • 2019-01-28
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多