"only integer scalar arrays can be converted to a scalar index"
"only integer scalar arrays can be converted to a scalar index"
我正在生成一个 numpy 数组,其中包含 1 到 6 之间的 1000000 个随机数,我想计算前 10、100、1000 的平均值,...我还想在对数刻度上绘制平均值。除了 Python 和 numpy 和 matplotlib,我不能使用任何东西。为什么会出现此错误?我做错了什么?
这是我的代码:
throws=numpy.random.randint(1,7,(1000000))
print(throws[1:10])
x=np.logspace(1,6,6)
plt.plot(x, int(mean(throws[1:x])))
plt.semilogx()
抱歉我的英语和德语变量名不好...
尝试 运行:
import numpy
x=numpy.logspace(1,6,6)
print(x.dtype)
演出
float64
所以würfe[1:x]
是用float64
数组作为索引,肯定是不对的
使用
x=numpy.logspace(1,6,6).astype(int)
而且 würfe[1:x]
要求 x 是一个整数而不是数组。
你就快完成了!您只需要对 würfe
(掷骰子)数组进行切片,然后对其应用均值,使用
最简单
würfe=numpy.random.randint(1,7,(1000000))
print(würfe[1:10])
x=np.logspace(1,6,6)
y=[np.mean(würfe[:int(x_)]) for x_ in x] # <--- just add this line
plt.plot(x, y)
plt.semilogx()
plt.show()
x
这里是 [10, 100, 1000, 10000, 100000, 1000000]
和 würfe[:int(x_)]
将 x
从 float 转换为 int 并使用它来将原始数组分割成你想要取平均值的部分的。然后用 .
取平均值
我正在生成一个 numpy 数组,其中包含 1 到 6 之间的 1000000 个随机数,我想计算前 10、100、1000 的平均值,...我还想在对数刻度上绘制平均值。除了 Python 和 numpy 和 matplotlib,我不能使用任何东西。为什么会出现此错误?我做错了什么?
这是我的代码:
throws=numpy.random.randint(1,7,(1000000))
print(throws[1:10])
x=np.logspace(1,6,6)
plt.plot(x, int(mean(throws[1:x])))
plt.semilogx()
抱歉我的英语和德语变量名不好...
尝试 运行:
import numpy
x=numpy.logspace(1,6,6)
print(x.dtype)
演出
float64
所以würfe[1:x]
是用float64
数组作为索引,肯定是不对的
使用
x=numpy.logspace(1,6,6).astype(int)
而且 würfe[1:x]
要求 x 是一个整数而不是数组。
你就快完成了!您只需要对 würfe
(掷骰子)数组进行切片,然后对其应用均值,使用
würfe=numpy.random.randint(1,7,(1000000))
print(würfe[1:10])
x=np.logspace(1,6,6)
y=[np.mean(würfe[:int(x_)]) for x_ in x] # <--- just add this line
plt.plot(x, y)
plt.semilogx()
plt.show()
x
这里是 [10, 100, 1000, 10000, 100000, 1000000]
和 würfe[:int(x_)]
将 x
从 float 转换为 int 并使用它来将原始数组分割成你想要取平均值的部分的。然后用