小编SLh*_*ark的帖子

使用 int dtype 进行 numpy 数组计算时出错(在需要时无法自动将 dtype 转换为 64 位)

当计算的输入是具有 32 位整数数据类型的 numpy 数组时,我遇到了 numpy 计算不正确的问题,但输出包含需要 64 位表示的较大数字。

这是一个最小的工作示例:

arr = np.ones(5, dtype=int) * (2**24 + 300)  # arr.dtype defaults to 'int32'

# Following comment from @hpaulj I changed the first line, which was originally:
# arr = np.zeros(5, dtype=int) 
# arr[:] = 2**24 + 300

single_value_calc = 2**8 * (2**24 + 300)
numpy_calc = 2**8 * arr

print(single_value_calc)
print(numpy_calc[0])

# RESULTS
4295044096
76800
Run Code Online (Sandbox Code Playgroud)

所需的输出是 numpy 数组包含正确的值 4295044096,这需要 64 位来表示它。即我希望 numpy 数组在输出需要时自动从 int32 向上转换为 int64,而不是保持 32 位输出并在超过 2^32 的值后返回到 …

python arrays integer numpy numpy-ndarray

5
推荐指数
1
解决办法
398
查看次数

在NumPy中建立索引:访问其他每组值

[::n]numpy中的索引选项提供了一种非常有用的方式来索引列表中的第n个项目。但是,是否可以使用此功能提取多个值,例如,每隔两个

例如:

a = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
Run Code Online (Sandbox Code Playgroud)

我想提取其他每对值,即我想返回

a[0, 1, 4, 5, 8, 9,]
Run Code Online (Sandbox Code Playgroud)

当然可以使用循环或其他方式来::建立索引,但是我想知道是否有一种更快的方法可以在numpy中使用-style索引,还可以指定模式的宽度以进行每n次迭代。

谢谢

python arrays numpy

3
推荐指数
1
解决办法
55
查看次数

标签 统计

arrays ×2

numpy ×2

python ×2

integer ×1

numpy-ndarray ×1