所以我有以下问题要尽量减少.我有一个w我需要找到的向量,以便最小化以下功能:
import numpy as np
from scipy.optimize import minimize
matrix = np.array([[1.0, 1.5, -2.],
[0.5, 3.0, 2.5],
[1.0, 0.25, 0.75]])
def fct(x):
return x.dot(matrix).dot(x)
x0 = np.ones(3) / 3
cons = ({'type': 'eq', 'fun': lambda x: x.sum() - 1.0})
bnds = [(0, 1)] * 3
w = minimize(fct, x0, method='SLSQP', bounds=bnds, constraints=cons)['x']
Run Code Online (Sandbox Code Playgroud)
我选择了method='SLSQP'因为它似乎是唯一一个允许bounds和constraints.我的问题是我必须在多个选择上循环我的解决方案,所以我想在这里获得一些速度.我的解决方案是使用优化器的最快的解决方案还是还有其他更快的解决方案?谢谢.
我有一个pandas.DataFrame包含列start和end列,以及几个额外的列.我想将此数据框扩展为以start值开始并以值结束的时间序列end,但复制其他列.到目前为止,我想出了以下内容:
import pandas as pd
import datetime as dt
df = pd.DataFrame()
df['start'] = [dt.datetime(2017, 4, 3), dt.datetime(2017, 4, 5), dt.datetime(2017, 4, 10)]
df['end'] = [dt.datetime(2017, 4, 10), dt.datetime(2017, 4, 12), dt.datetime(2017, 4, 17)]
df['country'] = ['US', 'EU', 'UK']
df['letter'] = ['a', 'b', 'c']
data_series = list()
for row in df.itertuples():
time_range = pd.bdate_range(row.start, row.end)
s = len(time_range)
data_series += (zip(time_range, [row.start]*s, [row.end]*s, [row.country]*s, [row.letter]*s))
columns_names = ['date', 'start', 'end', …Run Code Online (Sandbox Code Playgroud) 我使用以下方法创建了一个数据框:
df = pd.DataFrame(np.random.rand(10, 3), columns=['alp1', 'alp2', 'bet1'])
Run Code Online (Sandbox Code Playgroud)
我想获得含有从每列的数据帧df具有alp在他们的名字.这只是我的问题的简单版本,所以我的真实数据框将有更多的列.
我有以下问题.我试图找到在x坐标的二维数组上使用numpy插值方法的最快方法.
import numpy as np
xp = [0.0, 0.25, 0.5, 0.75, 1.0]
np.random.seed(100)
x = np.random.rand(10)
fp = np.random.rand(10, 5)
Run Code Online (Sandbox Code Playgroud)
所以基本上,xp将是数据点的x坐标,x将是包含我想要插值的值的x坐标的数组,并且fp将是包含数据点的y坐标的2-D数组.
xp
[0.0, 0.25, 0.5, 0.75, 1.0]
x
array([ 0.54340494, 0.27836939, 0.42451759, 0.84477613, 0.00471886,
0.12156912, 0.67074908, 0.82585276, 0.13670659, 0.57509333])
fp
array([[ 0.89132195, 0.20920212, 0.18532822, 0.10837689, 0.21969749],
[ 0.97862378, 0.81168315, 0.17194101, 0.81622475, 0.27407375],
[ 0.43170418, 0.94002982, 0.81764938, 0.33611195, 0.17541045],
[ 0.37283205, 0.00568851, 0.25242635, 0.79566251, 0.01525497],
[ 0.59884338, 0.60380454, 0.10514769, 0.38194344, 0.03647606],
[ 0.89041156, 0.98092086, 0.05994199, …Run Code Online (Sandbox Code Playgroud) 我有以下问题:我想在a dict中dict基于2列映射一个pandas dataframe.但是,到目前为止我提出的唯一解决方案是使用apply.问题是我的数据帧有超过一百万行,所以使用时间apply可能很长.关于如何更有效地做到这一点的任何想法?到目前为止,这是我的代码:
import pandas as pd
import numpy as np
dict_dict = {'A': {'a': 1, 'b': 2, 'c': 3},
'B': {'a': 4, 'b': 5, 'c': 6},
'C': {'a': 7, 'b': 8, 'c': 9},
'D': {'a': 10, 'b': 11, 'c': 12}}
list1 = ['A', 'B', 'C']
list2 = ['a', 'b', 'c']
np.random.seed(100)
df = pd.DataFrame()
df['col1'] = np.random.choice(list1, 10)
df['col2'] = np.random.choice(list2, 10)
df['map'] = df.apply(lambda x: dict_dict[x.col1][x.col2], axis=1)
df
col1 …Run Code Online (Sandbox Code Playgroud) 假设我有以下dict列表
t = [{'a': 1.0, 'b': 2.0},
{'a': 3.0, 'b': 4.0},
{'a': 5.0, 'b': 6.0},
{'a': 7.0, 'b': 9.0},
{'a': 9.0, 'b': 0.0}]
Run Code Online (Sandbox Code Playgroud)
是否有一种有效的方法来提取字典中包含的所有值,字典键值为a?
到目前为止,我已经提出了以下解决方案
x = []
for j in t:
x.append(j['a'])
Run Code Online (Sandbox Code Playgroud)
但是,我不喜欢循环使用项目,并且正在寻找一种更好的方法来实现这一目标.
我对html和感到很陌生pandas dataframe styler,但这是我的问题:
我写了下面的代码
import pandas as pd
df = pd.DataFrame([1000000.0, 1000000.0], index=pd.bdate_range('2017-08-01', '2017-08-02'))
styler = df.style
styler = styler.format("{:,.0f}")
styler = styler.set_properties(**{'width': '100px', 'text-align': 'right'})
Run Code Online (Sandbox Code Playgroud)
哪个产生以下
我了解如何格式化dataframe正在使用的各种元素。不过,我想格式化我index和column称号。特别是,我想将我index的日期格式设置为不带时间的日期,并且我想像使用值一样将column名称右对齐。更具体地说,在中有一种有效的访问index和columns的方式pandas styler。