Python 类型错误:';numpy.float64';对象在计算z分数时不可编辑
我试图计算z分数,并将其从输入文件输出到一个文件中。我在这里寻找参考,但是,我一直得到TypeError:'numpy.float64'对象是不可编辑的。那么我如何用numpy计算z分数呢?在网上任何地方都找不到Python 类型错误:';numpy.float64';对象在计算z分数时不可编辑,python,numpy,math,statistics,probability,Python,Numpy,Math,Statistics,Probability,我试图计算z分数,并将其从输入文件输出到一个文件中。我在这里寻找参考,但是,我一直得到TypeError:'numpy.float64'对象是不可编辑的。那么我如何用numpy计算z分数呢?在网上任何地方都找不到 def calculateZscore(self, input_file, output_file ): self.get_text_from_file(input_file) for i in self.text: data = np.array(i[
def calculateZscore(self, input_file, output_file ):
self.get_text_from_file(input_file)
for i in self.text:
data = np.array(i[1:5])
mean = np.mean(data)
std = np.std(data)
get_z_score = 0
for x in data:
z_score = (x - mean) / std
get_z_score = z_score
float_to_str = list(map(str, get_z_score))
print(get_z_score)
w = open(output_file, "w+")
w.write(stats.zscore(float_to_str))
这是我的全部回溯
Traceback (most recent call last):
File "C:/Users/Justin/PycharmProjects/lab_assignment/main.py", line 53, in <module>
main()
File "C:/Users/Justin/PycharmProjects/lab_assignment/main.py", line 44, in main
get_text.calculateZscore('NCSIDS_ObsExp.txt', 'calculate_z_score.txt')
File "C:/Users/Justin/PycharmProjects/lab_assignment/main.py", line 19, in calculateZscore
float_to_str = list(map(str, get_z_score))
TypeError: 'numpy.float64' object is not iterable
回溯(最近一次呼叫最后一次):
文件“C:/Users/Justin/PycharmProjects/lab_assignment/main.py”,第53行,在
main()
文件“C:/Users/Justin/PycharmProjects/lab_assignment/main.py”,第44行,main
获取text.calculateZscore('NCSIDS_ObsExp.txt','calculate_z_score.txt')
calculateZscore中第19行的文件“C:/Users/Justin/PycharmProjects/lab_assignment/main.py”
float_to_str=列表(映射(str,获取z_分数))
TypeError:“numpy.float64”对象不可编辑
错误应该会告诉您问题所在。我怀疑get_z_score
变量和您的尝试将其与map
一起使用float64对象是从数组派生的单个值,很可能是通过迭代得到的。你不能再对那个数字进行迭代。@hpaulj那我怎么能把它转换成字符串呢?str(get_z_score)
-你不需要对数据中的x进行迭代或映射,你似乎在为每个值计算零分,但是,您没有存储这些值,因此您将获得列表中最后一个值的z分数get_z_score
应该是存储每个值的列表或numpy数组。