Python 数组问题,那是什么类型的?为什么它可以在代码中运行?

Python 数组问题,那是什么类型的?为什么它可以在代码中运行?,python,arrays,matplotlib,types,Python,Arrays,Matplotlib,Types,为什么第6行x=np.arange(1,9,1)不能x=[1,2,3,4,5,6,7,8],有什么区别?我认为数据类型不同,但为什么第6行可以在这段代码中工作?而x=np.arange(1,9,1)生成一个numpy数组,x=[1,2,3,4,5,6,7,8]只是一个列表。 您可以看到数据类型的差异: Nor = [80,50,150,100,50,70,100,40] Mid = [150,70,200,120,50,70,100,50] Sou = [20,100,120,130,100,1

为什么第6行
x=np.arange(1,9,1)
不能
x=[1,2,3,4,5,6,7,8]
,有什么区别?我认为数据类型不同,但为什么第6行可以在这段代码中工作?

x=np.arange(1,9,1)
生成一个numpy数组,
x=[1,2,3,4,5,6,7,8]
只是一个列表。 您可以看到数据类型的差异:

Nor = [80,50,150,100,50,70,100,40]
Mid = [150,70,200,120,50,70,100,50]
Sou = [20,100,120,130,100,100,100,50]
Ove = [10,5,10,0,100,70,100,40]
x = np.arange(1,9,1)
width = 0.17

fig, ax = plt.subplots(figsize=(15,5))

rects1 = ax.bar(x - 1.5*width ,Nor, width, label='Nor')
rects2 = ax.bar(x - width/2,Mid, width, label='Mid')
rects3 = ax.bar(x + width/2,Sou, width, label='Mid')
rects4 = ax.bar(x + 1.5*width,Ove, width, label='Mid')



ax.set(xlabel='Season', ylabel='Market share %',
       title='Every season market share')
plt.grid()

legend = ax.legend(loc='upper left', shadow=True, fontsize='x-large',prop={'size': 8})


fig.tight_layout()
plt.show()
输出:

import numpy as np
x = np.arange(1,9,1)
print(type(x))
x = [1,2,3,4,5,6,7,8]
print(type(x))

当您尝试将
np.arange(1,9,1)
替换为
[1,2,3,4,5,6,7,8]
时,将出现以下错误:

TypeError:-:“list”和“float”的操作数类型不受支持


这是因为您只能从数组中减去一个数字。在列表中,您必须分别从每个元素中减去数字。

您研究过numpy是什么吗?这就是
np
所指的。当您为每个案例选择
type(x)
时,您得到了什么?
<class 'numpy.ndarray'>
<class 'list'>