如何用python求解数学表达式的值呢,才开始学,不是很会这个,求帮助
纯用 math 手写:
import math
# 用户输入参数
x = float(input("请输入x值:"))
mean = float(input("请输入均值mean值:"))
std = float(input("请输入标准差std值:"))
# 计算标准正态分布的累计函数
standard_normal_cdf = (1.0 + math.erf(x / math.sqrt(2.0))) / 2.0
# 计算一般正态分布的累计函数
normal_cdf = (1.0 + math.erf((x - mean) / (std * math.sqrt(2.0)))) / 2.0
# 计算双曲正切函数
tanh_value = math.tanh(x)
# 输出结果保留5位小数
print("标准正态分布的累计函数:{:.5f}".format(standard_normal_cdf))
print("一般正态分布的累计函数:{:.5f}".format(normal_cdf))
print("双曲正切函数:{:.5f}".format(tanh_value))
另外,用scipy更简单,代码如下
import scipy.stats as st
import numpy as np
# 用户输入参数
x = float(input("请输入x值:"))
mean = float(input("请输入均值mean值:"))
std = float(input("请输入标准差std值:"))
# 计算标准正态分布的累计函数
standard_normal_cdf = st.norm.cdf(x)
# 计算一般正态分布的累计函数
normal_cdf = st.norm.cdf(x, mean, std)
# 计算双曲正切函数
tanh_value = np.tanh(x)
# 输出结果保留5位小数
print("标准正态分布的累计函数:{:.5f}".format(standard_normal_cdf))
print("一般正态分布的累计函数:{:.5f}".format(normal_cdf))
print("双曲正切函数:{:.5f}".format(tanh_value))
数据中有用户的编号,歌曲编号,已经用户对该歌曲播放的次数。
有了基础数据之后,我们还可以统计出关于用户与歌曲的各项指标,例如对每一个用户,分别统计他的播放总量,代码如下:
output_dict = {}
with open(data_home+'train_triplets.txt') as f:
for line_number, line in enumerate(f):
#找到当前的用户
user = line.split('\t')[0]
#得到其播放量数据
play_count = int(line.split('\t')[2])
#如果字典中已经有该用户信息,在其基础上增加当前的播放量
if user in output_dict:
play_count +=output_dict[user]
output_dict.update({user:play_count})
output_dict.update({user:play_count})
# 统计 用户-总播放量
output_list = [{'user':k,'play_count':v} for k,v in output_dict.items()]
#转换成DF格式
play_count_df = pd.DataFrame(output_list)
#排序
play_count_df = play_count_df.sort_values(by = 'play_count', ascending = False)
构建一个字典结构来统计不同用户分别播放的总数,这需要我们把数据集遍历一遍。当我们的数据集比较庞大的时候,每一步操作都可能花费较长时间,后续操作中如果稍有不慎可能还得重头再来一遍,这就得不偿失了,最好还是把中间结果保存下来,既然我们已经把结果转换成df格式,直接使用to_csv()函数就可以完成保存的操作。
play_count_df.to_csv(path_or_buf='user_playcount_df.csv', index = False)