我需要一些关于python(scipy)中优化函数的帮助,问题是优化f(x)在哪里x=[a,b,c...n].约束是a,b等的值应该在0和1之间,并且sum(x)==1.scipy.optimise.minimize函数似乎最好,因为它不需要差异.我如何传递参数?
使用排列创建一个ndarray太长了.我现在的代码如下: -
import itertools as iter
all=iter.permutations([0.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0],6) if sum==1
all_legal=[]
for i in all:
if np.sum(i)==1:
#print np.sum(i)
all_legal.append(i)
print len(all_legal)
lmax=0
sharpeMax=0
for i in all_legal:
if sharpeMax<getSharpe(i):
sharpeMax=getSharpe(i)
lmax=i
Run Code Online (Sandbox Code Playgroud) 对不起,如果重复的问题,新的编程找不到任何合适的答案.我想将列表转换为字典.键为x [1],值为x [2]
为了清楚我有一个*3数组,需要将它转换为第二列作为键和第三列作为值的字典.
我试过了:
for entry in data:
keys=entry[1]
values=entry[2]
source = dict.fromkeys(keys, values)
Run Code Online (Sandbox Code Playgroud)
得到错误'类型列表不可以'
通过问题4576115.但是,我需要迭代3000+*3数组的每个元素,其中大多数元素本身是列表,然后将每个条目的第二个元素设置为键,将第3个元素设置为值.只是为了放大,也试过了
b = {data[i][1]: data[i][2] for i in range(0, len(data))}
Run Code Online (Sandbox Code Playgroud)
并输入数据:
keys=entry[1]
values=entry[2]
b.update(keys,values)
Run Code Online (Sandbox Code Playgroud)
和
keyList.append(keys)
valueList.append(values)
b = dict(zip(keyList,valueList))
Run Code Online (Sandbox Code Playgroud)
和
b={entry[1]:entry[2] for entry in data}
Run Code Online (Sandbox Code Playgroud)
相同的问题 - 错误'列表'不可清除
好的,对不起.得到它了.问题是密钥本身就是列表.我正在看阵列并错过了元素