我相信这些应该有相同的结果,但事实并非如此。
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''hello''6''7''8''9']
但是如果我这样做:
import numpy as np
a=np.array([1,2,3,4,"hello",6,7,8,9])
print(a[0])
结果:1
为什么有区别?不是同一数组吗?
谢谢您的回答。
答案 0 :(得分:1)
他们不一样。
您的第一个示例生成形状为(1, 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]
。