用numpy组织数字

2024-04-27 04:59:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我在列表中有一些数字,我想用它们来组织努比。给你我的代码

lst=['99.56','99.76','99.84','100.00','100.00','100.00','100.00','100.00','100.00','99.80','99.43']

lst2=[]

    for i in np.arange(95.0,100.0,0.1):
        x=0
        for j in lst:
            if float(i)+0.1>= float(j) > float(i):
                x=x+1
        lst2.append(x)

lst2=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0]

我不明白为什么最后一项是0。有6'100.00。为什么不是6?。你知道吗

谢谢


Tags: 代码in列表forifnp数字float
2条回答

numpy.arange生成的ndarray通常不包括结束值:

In [15]: np.arange(99.0, 100., 0.1)
Out[15]: array([ 99. ,  99.1,  99.2,  99.3,  99.4,  99.5,  99.6,  99.7,  99.8,  99.9])

请注意,有一个内置方法numpy.histogram可以为您完成这项工作

In [13]: np.histogram(lst, list(np.arange(95.0,100.2,0.1)))
Out[13]: 
(array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
       0, 1, 2, 0, 6, 0]), array([  95. ,   95.1,   95.2,   95.3,   95.4,   95.5,   95.6,   95.7,
         95.8,   95.9,   96. ,   96.1,   96.2,   96.3,   96.4,   96.5,
         96.6,   96.7,   96.8,   96.9,   97. ,   97.1,   97.2,   97.3,
         97.4,   97.5,   97.6,   97.7,   97.8,   97.9,   98. ,   98.1,
         98.2,   98.3,   98.4,   98.5,   98.6,   98.7,   98.8,   98.9,
         99. ,   99.1,   99.2,   99.3,   99.4,   99.5,   99.6,   99.7,
         99.8,   99.9,  100. ,  100.1,  100.2]))

不太清楚你在问什么…你想对lst排序,还是基于lst建立一个新的列表lst2?澄清你的问题将有助于得到更好的答案。你知道吗

如果你想做第一件事,为什么不直接使用数组呢?你知道吗

testarray = np.array(lst)
testarray.sort() # This will sort from largest to smallest.

关于为什么lst2中的最后一个条目是0的问题,请查看您的逻辑。询问i+0.1的值是否大于ji。对于最后一个条目,您将有: i+1=100.0 j=99.43 i=99.9

i+0.1大于或等于j,但j不大于i。该值的计算结果为false,因此x的值保持为0。你知道吗

相关问题 更多 >