gpt4 book ai didi

python - Numpy 截断?

转载 作者:太空宇宙 更新时间:2023-11-04 09:08:54 29 4
gpt4 key购买 nike

我正在实现一个使用 Python Numpy 包的程序。我正在尝试修改数组的元素,以便我只需采用 elem[i][j] 并将其设置为 elem[i][j]/10。但是,我不断收到某种截断,其中元素在操作后设置为 0。这是我的代码:

for  word in allwords:
for x in xrange(wordarrays[word].shape[0]):
for y in xrange(wordarrays[word].shape[1]):
wordarrays[word][x][y]=wordarrays[word][x][y]/10

在我的代码中,wordarrays 是一个从字符串到数组的字典。当我简单地打印 wordarrays[word][x][y]/10 时,截断不是问题,浮点除法按预期进行。我已经检查过,数组都有 dtype=float64,所以这应该不是问题。我还尝试使用 nditer 通过这里介绍的方法修改数组

是什么导致了这种截断?感谢您的帮助!


提供有关我异常输出的更多详细信息。除法前,wordarray['chen']的条目如下:

[[2. 3.]
[4. 1.]]

除以 10(或 10.0)后,我得到了同一个数组:

[[1.01000000e-04   1.20000000e-05]
[1.11001000e-01 1.00000000e-06]]

这似乎没有任何意义。我认识到双 for 循环不是那么 pythonic 但这是我在使用 np.nditer 进行迭代时想尝试的尝试不起作用。为了解决一些评论,我确实尝试同时除以 10 和 10.0。结果是一样的。

此外,当我执行相同的操作而不替换数组的条目并只打印除法时,即:

for  word in allwords:
for x in xrange(wordarrays[word].shape[0]):
for y in xrange(wordarrays[word].shape[1]):
print wordarrays[word][x][y]/10

我得到了预期的结果,即:

[[0.2 0.3]
[0.4 0.1]]

最佳答案

这样做可以显着提高你的表现:

for word in allwords:
wordarrays[word] /= 10.

关于python - Numpy 截断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17420929/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com