Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 阵列点积_Python_Arrays_Numpy_Product - Fatal编程技术网

Python 阵列点积

Python 阵列点积,python,arrays,numpy,product,Python,Arrays,Numpy,Product,我有一个列向量: a = [[1] [2] [3]] 首先,我怎样才能去掉外支架?我需要在*a创建点积,答案应该是单数。我当前的代码生成[[14]],但我需要14本身 这是我目前的代码: SSE = np.inner(np.transpose(a), np.transpose(a)) 使用hstack np.hstack(a).dot(a) array([14]) 使用hstack np.hstack(a).dot(a) array([14]) 首先,让我们对符号要挑剔 a = [[1]

我有一个列向量:

a = [[1] [2] [3]]
首先,我怎样才能去掉外支架?我需要在*a创建点积
,答案应该是单数。我当前的代码生成
[[14]]
,但我需要
14
本身

这是我目前的代码:

SSE = np.inner(np.transpose(a), np.transpose(a))

使用
hstack

np.hstack(a).dot(a)
array([14])

使用
hstack

np.hstack(a).dot(a)
array([14])

首先,让我们对符号要挑剔

a = [[1] [2] [3]]
不是有效的Python。即使目标是numpy数组,也会出现语法错误

In [202]: a = np.array([[1],[2],[3]])                                        
In [203]: a.shape                                                            
Out[203]: (3, 1)
In [204]: a                                                                  
Out[204]: 
array([[1],
       [2],
       [3]])
In [205]: print(a)                                                           
[[1]
 [2]
 [3]]
数组的print/str显示省略了逗号,但括号是显示的组成部分。它们有助于显示阵列的尺寸。此数组的等效列表显示为
[[1]、[2]、[3]]

如果我对a(1,3)和a(3,1)做一个
dot
,结果是(1,1)。
(以及您的
内部
版本)保留阵列的外部尺寸

In [206]: np.dot(a.T,a)                                                      
Out[206]: array([[14]])
In [207]: _.shape                                                            
Out[207]: (1, 1)
我们可以“展平”阵列,因此它的形状现在是(3,):

np.dot
对1d数组参数有特殊的文档处理。请注意,
.T
转置是不需要的。转置对1d数组的形状没有任何影响

np.internal
也可以使用,但是
np.dot
更常用:

In [215]: np.inner(a.T, a.T)                                                 
Out[215]: array([[14]])
In [216]: np.inner(a1, a1)                                                   
Out[216]: 14
最近几年,有
matmul
函数和
@
操作符工作原理类似:

In [217]: a.T@a                                                              
Out[217]: array([[14]])
可以在计算后删除尺寸标注:

In [218]: (a.T@a).squeeze()                                                  
Out[218]: array(14)
In [219]: (a.T@a).item()                                                     
Out[219]: 14

首先,让我们对符号要挑剔

a = [[1] [2] [3]]
不是有效的Python。即使目标是numpy数组,也会出现语法错误

In [202]: a = np.array([[1],[2],[3]])                                        
In [203]: a.shape                                                            
Out[203]: (3, 1)
In [204]: a                                                                  
Out[204]: 
array([[1],
       [2],
       [3]])
In [205]: print(a)                                                           
[[1]
 [2]
 [3]]
数组的print/str显示省略了逗号,但括号是显示的组成部分。它们有助于显示数组的尺寸。此数组的等效列表显示为
[[1],[2],[3]]

如果我用a(3,1)对a(1,3)做一个
dot
,结果是(1,1)。
dot
(以及您的
内部版本)保留数组的外部尺寸

In [206]: np.dot(a.T,a)                                                      
Out[206]: array([[14]])
In [207]: _.shape                                                            
Out[207]: (1, 1)
我们可以“展平”阵列,因此它的形状现在是(3,):

np.dot
对1d数组参数有特殊的文档处理。请注意,
.T
转置是不需要的。转置对1d数组的形状没有任何影响

np.internal
也可以使用,但是
np.dot
更常用:

In [215]: np.inner(a.T, a.T)                                                 
Out[215]: array([[14]])
In [216]: np.inner(a1, a1)                                                   
Out[216]: 14
最近几年,有
matmul
函数和
@
操作符工作原理类似:

In [217]: a.T@a                                                              
Out[217]: array([[14]])
可以在计算后删除尺寸标注:

In [218]: (a.T@a).squeeze()                                                  
Out[218]: array(14)
In [219]: (a.T@a).item()                                                     
Out[219]: 14

为什么要去掉外括号?这就是“列”向量的显示方式。
a
是(3,1)形状,对吗?
a.T
然后是(1,3)。
dot
在三维空间上留下一个(1,1)结果。为什么要去掉外括号?这就是“列”向量的显示方式。
a
是(3,1)形状,对吗?
a.T
然后是(1,3)。
dot
在三维上留下(1,1)结果。