numpy.zeros(n)和numpy.zeros(n,1)的区别

4

numpy.zeros(n)

numpy.zeros(n,1)的区别是什么?

第一个语句的输出为

[0 0 ..... n 次]

而第二个的输出为

([0] [0]

.... n 行)


1
我在使用numpy.zeros(n, 1)时遇到了错误。我猜你的意思是numpy.zeros((n,1)) - Gabe Hackebeil
1
有关(n,)形状和(n,1)的区别的详细描述,请参阅https://dev59.com/UmEh5IYBdhLWcg3wwly8(以及其他类似的问题)。 - hpaulj
@hpaulj:我认为这是一个完美的候选问题,可以将其作为重复问题关闭。 - Eric
1个回答

3
第一个参数表示数组的形状。标量参数意味着“平坦”数组(向量),而元组参数则被解释为张量的维度。因此,如果参数是元组(m,n)numpy.zeros将返回一个具有m行和n列的矩阵。在你的情况下,它返回一个具有n行和1列的矩阵。
虽然两种情况某种程度上是等价的,但需要向线性代数例程提供向量作为输入的代码通常期望类似第一种形式的内容。

NumPy对于1-D矩阵(n,)和带有单例维度(n,1)的2-D矩阵进行了不同的处理。 - TWReever
@TWReever:感谢您澄清我的上一句话。 - Gabe Hackebeil
肯定需要一些时间来适应,特别是如果习惯了更传统的处理方式,比如在Matlab中。 - TWReever
MATLAB仍然保留着只有2D矩阵作为其数据结构的时代的遗迹。numpy生存在标量和列表的世界中。它的数组可以具有任意数量的维度-0,1,2... - hpaulj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接