首页 > 解决方案 > 无法理解 np.arange 中命令的输出

问题描述

i=np.arange(0,2.1,0.5,dtype='int8')
print(i)
[0 0 0 0 0]


g=np.arange(0.5,2.1,0.5,dtype='int8')
print(g)
[0 1 2 3]


n=np.arange(257,260,0.5,dtype='int16')
print(n)
[257 257 257 257 257 257]

p=np.arange(257,260,0.5,dtype='int8')
print(p)
[1 1 1 1 1 1]


o=np.arange(257.5,260,0.5,dtype='int16')
print(o)
[257 258 259 260 261]

q=np.arange(257.5,260,0.5,dtype='int8')
print(q)
[1 2 3 4 5]

标签: pythonarraysnumpy

解决方案


Numpy Arange 文档中:

当使用非整数步长(例如 0.1)时,结果通常会不一致。对于这些情况,最好使用 numpy.linspace。

例如,由于您的第一个示例使用浮点数2.1,因此会产生意想不到的结果。尝试使用Numpy Linspace

在您的第一个示例中使用 linspace 可能更有意义:

import numpy as np
i=np.linspace(0,2.1, num=3,dtype='int8')
print(i)
[0 1 2]

或没有 dtype='int8'

[0. 1.05 2.1]

推荐阅读