我相信这些应该有相同的结果,但事实并非如此。
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])
结果:[11''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
为什么会有区别?这不是同一个数组吗?
感谢您提前给出的答案。
它们不一样。
您的第一个示例产生形状为(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]
。