Numpy 获取“a”的第一个元素;vstack"-ed数组与预定义数组。相同的数组,不同的结果?
我相信这些应该有相同的结果,但事实并非如此Numpy 获取“a”的第一个元素;vstack"-ed数组与预定义数组。相同的数组,不同的结果?,numpy,Numpy,我相信这些应该有相同的结果,但事实并非如此 import numpy as np a=np.empty((0,9)) a=np.vstack((a,[1,2,3,4,"hello",6,7,8,9])) print(a[0]) 结果:['1''2''3''4''你好''6''7''8''9'] 但如果我这样做: import numpy as np a=np.array([1,2,3,4,"hello",6,7,8,9]) print(a[0]) 结果:1 为什么会有区别?它不是同一个数
import numpy as np
a=np.empty((0,9))
a=np.vstack((a,[1,2,3,4,"hello",6,7,8,9]))
print(a[0])
结果:['1''2''3''4''你好''6''7''8''9']
但如果我这样做:
import numpy as np
a=np.array([1,2,3,4,"hello",6,7,8,9])
print(a[0])
结果:1
为什么会有区别?它不是同一个数组吗
提前感谢您的回答。它们不一样
您的第一个示例生成一个shape(1,9)
数组,而您的第二个示例生成一个shape(9,9)
数组,如下所示:
import numpy as np
a = np.empty((0,9))
a = np.vstack((a,[1,2,3,4,"hello",6,7,8,9]))
print(a.shape) # result is: (1, 9)
a = np.array([1,2,3,4,"hello",6,7,8,9])
print(a.shape) # result is: (9,)
形状为
(1,9)
的数组可以看作是包含数组(每个数组的长度为9)的数组(长度为1)。因此,在您的示例中,a[0]
给出长度为9的第一个数组,即[1,2,3,4,“hello”,6,7,8,9]
vstack
应用np。在将其加入(0,9)
数组之前,至少应用2d([您的列表]
)。因此,它将(0,9)与(1,9)数组联接,得到(1,9)vstack
docs试图明确说明该操作。