代码之家  ›  专栏  ›  技术社区  ›  SimpleProgrammer

使用Python的配置文件直方图(错误:“FutureWarning:…”

  •  0
  • SimpleProgrammer  · 技术社区  · 6 年前

    Plotting profile histograms in python . 但无论如何,因为某些原因,这对我来说是行不通的。

    让我们看看我的代码

     from pylab import *
     import numpy as np
     import matplotlib.pyplot as plt
     import seaborn as sns
     import scipy
    
    
     file = open('cesium.txt','r')
     count = 0
     energy_channel = []
     intensity_counts = []
     for line in file.readlines():
         count += 1
         if count >= 10:
             row = line.split()
             int_1 = int(row[0])
             int_2 = int(row[-1])
             energy_channel.append(int_1)
             intensity_counts.append(int_2)
         if count == 2700: break
    
    
     plt.plot(energy_channel, intensity_counts, 'k.')
     plt.xlabel('Energy (keV)')
     plt.ylabel('Counts')
     plt.xticks([0, 400, 800, 1200, 1600, 2000, 2400],
                [0, 110, 220, 330, 440, 550, 662])
     plt.show()
     plt.clf()
    

    这将为放射性同位素Cs-137绘制一个所谓的伽马能谱(为那些有兴趣的人)。现在,我想用这个频谱做一个剖面直方图。由于我把所有的点分别存储在两个(x-和y-)向量能量通道和强度μ计数中,所以我想这样做可能有用:

    scipy.stats.binned_statistic(energy_channel,intensity_counts)
    

    但这只是给我一个错误信息:

     FutureWarning:
     Using a non-tuple sequence for multidimensional indexing is deprecated;
     use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be
     interpreted as an array index, `arr[np.array(seq)]`, which will result
     either in an error or a different result.
    

    我希望我在这里的问题是清楚的。我想做一个配置文件直方图,就像我把一个链接到的线程,但它似乎没有工作,因为我认为它会,我不知道它。

    Edit:我尝试过使用函数zip()将列表生成一个元组列表,然后将其交给binned_statistics()函数,但是出现了相同的错误消息。我也试着把名单按顺序排列,但似乎也没用。

    0 回复  |  直到 6 年前