当前位置: 首页 > 知识库问答 >
问题:

numpy:形状向量(5,1)和(5,)有什么区别?[副本]

罗昊空
2023-03-14

我发现为了使用点积,我经常不得不将(5,)重塑为(5,1)。我不能使用形状向量(5,)的点积吗?

共有2个答案

许彭祖
2023-03-14

这是因为当您使用arr=np.ones((5))创建一个数组时,它将得到一个包含5个元素的1D数组,另一方面,当您使用arr=np.ones((5,1))创建数组时,它将创建一个包含5行1列的2D数组。下面的示例会让您更清楚:

>>> import numpy as np 
>>> a = np.ones((5, 1))
>>> a
array([[ 1.],
       [ 1.],
       [ 1.],
       [ 1.],
       [ 1.]])
>>> a = np.ones((5))
>>> a
array([ 1.,  1.,  1.,  1.,  1.])
赖绪
2023-03-14

要使用点积,需要矩阵(用2D数组表示)。维度为(5,)的数组是由5项组成的平面数组(1D数组),其中as(5,1)是包含1列和5行的矩阵。

>>> import numpy as np
>>> np.zeros((5,))
array([ 0.,  0.,  0.,  0.,  0.])    # single flat array
>>> np.zeros((1,5))
array([[ 0.,  0.,  0.,  0.,  0.]])  # array with-in array
>>> np.zeros((5,1))
array([[ 0.],
       [ 0.],
       [ 0.],
       [ 0.],
       [ 0.]])
>>>
 类似资料:
  • Java的和有什么区别?

  • 返回此枚举常量的名称,与在其枚举声明中声明的名称完全相同。大多数程序员应该使用toString方法而不是这个方法,因为toString方法可能返回一个用户更友好的名称。此方法主要是为在特定情况下使用而设计的,在特定情况下,正确与否取决于获得准确的名称,而准确的名称不会因发布而异。 特别是,即使文档中说更喜欢,Java自己的StandardLocation枚举使用了而我认为文档中的建议是相反的。 此

  • 问题内容: 和Numpy有什么区别?我在哪里可以找到numpy源代码中的实现? 问题答案: 只是创建一个便利函数; 它本身不是类。 您也可以使用创建数组,但不建议这样做。来自以下文档的字符串: 阵列应该使用来构造,或…这里给出的参数是指低级方法(用于实例化阵列)。 实现的大部分内容都在C代码中(在multiarray中),但是您可以在这里开始查看ndarray接口: https://github.

  • Numpy中的和之间有什么区别?我在哪里可以找到numpy源代码中的实现?

  • 我正在使用Apache Kafka 0.8.2.1,计划升级应用程序以使用Apache Kafka 1.0.0。当我考察Kafka流的时候,我得到了一些关于Kafka流和Kafka流的区别的问题。 我知道KafkaConsumer基本上用于字面上,从broker和KafkaStreams可以做各种事情,如或与数据库交互,甚至重新生成到其他kafka或任何其他系统。 所以,这是我的问题。KafkaC

  • 问题内容: 如果我写下面的代码(在java中): 我的输出是:“等于”,但是如果我将第一行和第二行更改为-> 那么我的输出是: 那么创建Integer对象有什么区别?当我们这样做时如何创建它? 如果我创建并创建另一个对象,是否意味着a和b对象引用相同的对象? 问题答案: ; 称为自动装箱,编译器将此表达式转换为实际 对于较小的数字,默认情况下为-128到127,Integer.valueOf(in