Python Jupyter笔记本未正确应用函数
我有一个jupyter笔记本,其中我使用logistic函数返回一个规范化的数组 代码: 输出为:Python Jupyter笔记本未正确应用函数,python,jupyter-notebook,Python,Jupyter Notebook,我有一个jupyter笔记本,其中我使用logistic函数返回一个规范化的数组 代码: 输出为: 2.718281828459045 [1, 2, 3] [1, 2, 3] 为什么更改没有应用到input[]中的值?只需将结果放在另一个列表中 import math import numpy as np p_num =[] # takes a list of numbers as input def logistic_transform(nums): e = math.e p
2.718281828459045
[1, 2, 3]
[1, 2, 3]
为什么更改没有应用到
input[]
中的值?只需将结果放在另一个列表中
import math
import numpy as np
p_num =[]
# takes a list of numbers as input
def logistic_transform(nums):
e = math.e
print('e',e)
print('nums',nums)
for num in nums:
p_num.append(1 / 1 + (e ** num))
return p_num
input = [1, 2, 3]
test = logistic_transform(input)
print('test',test)
e 2.718281828459045
nums[1,2,3]
测试[3.718281828459045,8.389056098930649,21.085536923187664]你要做的就是获得一个新列表,尝试一个新列表:
new_list = []
for num in nuns:
#do ur stuff
new_list.append(num)
return new_list
首先,你的后勤职能没有意义, 我想应该是这样的:
(1 / (1 + (e ** (-num)))
您要做的是取出一个元素,将其保存在变量num
中,并更新变量num
,而不是在列表nums
中更新它
使用列表理解:
nums=[(1/(e**(-num)))表示num中的num]
或者像这样更新列表
for num in range(len(nums)):
nums[num] = 1 /(1 + (e ** (-nums[num])))
在这里,这应该很好:
import math
def logistic_transform(nums):
e = math.e
print(e)
print(nums)
nums = [(1 / (1 + (e ** (-num)))) for num in nums]
return nums
input = [1, 2, 3]
test = logistic_transform(input)
print(test)
使用
returnnum
而不是returnnums
。您只返回输入。我建议将num定义为list并附加值。嘿,谢谢你的反馈。我认为Ashlou给我的解决方案是好的。你是说我的逻辑函数返回的值不正确吗?或者它只是没有遵循最佳实践?ur函数将返回不正确的值。请使用检查括号u r。你可以从上面的公式中看到,当你增加num
时,它应该朝着0。我的意思是很明显。还有一个标准的逻辑S形函数是:1/(1+e^(-x))哦,哈哈,是的,它肯定会变小。你是对的,我想应该是-num
而不是num
对吧(这会导致数字变大)?
import math
def logistic_transform(nums):
e = math.e
print(e)
print(nums)
nums = [(1 / (1 + (e ** (-num)))) for num in nums]
return nums
input = [1, 2, 3]
test = logistic_transform(input)
print(test)