如何在numpy中解释数组的形状

如何在numpy中解释数组的形状,numpy,Numpy,我一直认为a1是1乘3的“行向量”。 然而形状是(3,) 相反,a2的形状是(1,3),看起来更像行向量 两者(a1,a2)都可以内积(np.dot())并生成相同的图形。(仅形状除外) 对这两者的解释有什么不同吗 将a1解释为行向量是否合适?它是一个“向量”,或者用简单的术语来说是一个一维数组。查看用于创建它们的列表?什么是[1,2,3]?那张名单是什么?np.数组(3)的形状是什么?括号的数量决定数组的形状。我很困惑a1=np.array([1,2,3])和a2=np.array([[1,2

我一直认为a1是1乘3的“行向量”。 然而形状是(3,)

相反,a2的形状是(1,3),看起来更像行向量

两者(a1,a2)都可以内积(np.dot())并生成相同的图形。(仅形状除外)

对这两者的解释有什么不同吗


将a1解释为行向量是否合适?

它是一个“向量”,或者用简单的术语来说是一个一维数组。查看用于创建它们的列表?什么是
[1,2,3]
?那张名单是什么?np.数组(3)的形状是什么?括号的数量决定数组的形状。我很困惑a1=np.array([1,2,3])和a2=np.array([[1,2,3]])之间除了形状之外还有什么不同。区别只是形状,然后我可以用a2代替a1?区别在于形状。经验丰富的numpy用户对(3,)形状很满意,除非确实需要,否则不要使用(1,3)(或(3,1))。
import numpy as np

a1 = np.array([1, 2, 3])
a1.shape # (3,)
a2 = np.array([[1, 2, 3]])
a2.shape # (1, 3)

b = np.array([[1, 2, 3], [2,3,4], [ 1,2,2]])
np.dot(a1,b) # array([ 8, 14, 17])
np.dot(a1,b) # array([[ 8, 14, 17]])