我是Python的新手,并且已经通过几本书来解决它.除了可视化之外,一切都很棒.我真的不喜欢matplotlib和Bokeh需要太重的堆栈.
我想要的工作流程是:
使用ipython笔记本中的pandas进行数据分析 - >使用sublimetext2中的d3进行可视化
但是,作为Python和d3的新手,我不知道将我的pandas数据框导出到d3的最佳方法.我应该把它作为csv吗?JSON?还是有更直接的方式?
附带问题:是否有任何(合理的)方法在ipython笔记本中执行所有操作而不是切换到sublimetext?
任何帮助,将不胜感激.
python中已有一个多键词典,也是一个多值词典.我需要一个python字典,它是:
例:
# probabilistically fetch any one of baloon, toy or car
d['red','blue','green']== "baloon" or "car" or "toy"
Run Code Online (Sandbox Code Playgroud)
d ['red'] == d ['green']的概率很高,d ['red']!= d ['red']的概率很低但可能
单个输出值应根据来自键的规则进行概率确定(模糊),例如:在上述情况下规则可以是如果键具有"红色"和"蓝色"则返回"气球"80%的时间如果只有蓝色然后返回"玩具"15%的时间其他"汽车"5%的时间.
应该设计setitem方法,以便可以遵循:
d["red", "blue"] =[
("baloon",haseither('red','green'),0.8),
("toy",.....)
,....
]
Run Code Online (Sandbox Code Playgroud)
上面使用谓词函数和相应的概率为字典分配多个值.而不是上面的赋值列表,甚至字典作为赋值将是更可取的:
d["red", "blue"] ={
"baloon": haseither('red','green',0.8),
"toy": hasonly("blue",0.15),
"car": default(0.05)
}
Run Code Online (Sandbox Code Playgroud)
如果"红色"或绿色存在,上述气球将返回80%的时间,如果蓝色存在则返回玩具15%的时间,并且在没有任何条件的情况下返回5%的时间.
是否有任何现有的数据结构已经满足python中的上述要求?如果没有那么如何修改multikeydict代码以满足python中的上述要求?
如果使用字典,那么可以有配置文件或使用适当的嵌套装饰器来配置上述概率谓词逻辑,而不必硬编码if\else语句.
注意:上面是一个基于规则的自动响应程序应用程序的有用自动机,因此,如果python中有任何类似的基于规则的框架,即使它不使用字典结构,也要告诉我吗?
python dictionary recommendation-engine fuzzy-logic data-structures
我想在Ubuntu-Linux上在anaconda上安装seaborn.
conda install -c anaconda seaborn=0.7.1
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
Fetching package metadata .../home/moritz/Python/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connection.py:337: SubjectAltNameWarning: Certificate for conda.anaconda.org has no `subjectAltName`, falling back to check for a `commonName` for now. This feature is being removed by major browsers and deprecated by RFC 2818. (See https://github.com/shazow/urllib3/issues/497 for details.)
SubjectAltNameWarning
/home/moritz/Python/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connection.py:337: SubjectAltNameWarning: Certificate for conda.anaconda.org has no `subjectAltName`, falling back to check for a `commonName` for now. This feature is being removed by major browsers and deprecated by RFC 2818. (See https://github.com/shazow/urllib3/issues/497 for details.)
SubjectAltNameWarning …Run Code Online (Sandbox Code Playgroud) 我有一个示例数据,我希望得到最合适的分布.我有几个链接表明我可以从中导入分发scipy.stats,但后来我不知道数据的类型.我想类似的东西allfitdist()在MATLAB它试图以适应数据约20的分布,并返回最合适的.
链接allfitdist():http://www.mathworks.in/matlabcentral/fileexchange/34943-fit-all-valid-parametric-probability-distributions-to-data
任何帮助都非常值得赞赏.谢谢.
创建一个总和为X的随机向量(例如X = 1000)非常简单:
import random
def RunFloat():
Scalar = 1000
VectorSize = 30
RandomVector = [random.random() for i in range(VectorSize)]
RandomVectorSum = sum(RandomVector)
RandomVector = [Scalar*i/RandomVectorSum for i in RandomVector]
return RandomVector
RunFloat()
Run Code Online (Sandbox Code Playgroud)
上面的代码创建了一个向量,其值为浮点数,sum为1000.
我很难创建一个简单的函数来创建一个值为整数且和为X的向量(例如X = 1000*30)
import random
def RunInt():
LowerBound = 600
UpperBound = 1200
VectorSize = 30
RandomVector = [random.randint(LowerBound,UpperBound) for i in range(VectorSize)]
RandomVectorSum = 1000*30
#Sanity check that our RandomVectorSum is sensible/feasible
if LowerBound*VectorSize <= RandomVectorSum and RandomVectorSum <= UpperBound*VectorSum:
if sum(RandomVector) == RandomVectorSum:
return …Run Code Online (Sandbox Code Playgroud) 我正在编写 Python 脚本来编写代码以查找超几何分布的概率。当我在 中使用hypergeom()函数时scipy,它显示如下:
scipy.stats.distributions.rv_frozen object at 0*2519690
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索但找不到任何有用的东西。我只是想知道它实际上是什么意思?
我在进行基本数据调整时遇到了这种行为,如下例所示:
In [55]: import pandas as pd
In [56]: import numpy as np
In [57]: rng = pd.date_range('1/1/2000', periods=10, freq='4h')
In [58]: lvls = ['A','A','A','B','B','B','C','C','C','C']
In [59]: df = pd.DataFrame({'TS': rng, 'V' : np.random.randn(len(rng)), 'L' : lvls})
In [60]: df
Out[60]:
L TS V
0 A 2000-01-01 00:00:00 -1.152371
1 A 2000-01-01 04:00:00 -2.035737
2 A 2000-01-01 08:00:00 -0.493008
3 B 2000-01-01 12:00:00 -0.279055
4 B 2000-01-01 16:00:00 -0.132386
5 B 2000-01-01 20:00:00 0.584091
6 C 2000-01-02 00:00:00 -0.297270
7 …Run Code Online (Sandbox Code Playgroud) 在Pandas.DataFrame使用中插入值很容易Series.interpolate,如何进行外推?
例如,给定一个DataFrame如图所示,我们怎样才能将它推断14个月到2014-12-31?线性外推很好.
X1 = range(10)
X2 = map(lambda x: x**2, X1)
df = pd.DataFrame({'x1': X1, 'x2': X2}, index=pd.date_range('20130101',periods=10,freq='M'))
Run Code Online (Sandbox Code Playgroud)
我认为必须首先创建一个新的DataFrame,DateTimeIndex从2013-11-31开始并延长14个M周期.除此之外,我被困住了.
我已广泛使用Python来执行各种特殊数据调整和辅助任务.由于我正在学习C#,我认为看看我是否可以用C#重写其中的一些脚本会很有趣.
是否有可执行文件可以获取.cs文件并运行它ala python?
我试图通过使用循环找到最佳参数顺序:
d = 1
for p in range(3):
for q in range(3):
try:
order = (p, 0, q)
params = (p, d, q)
arima_mod = ARIMA(ts.dropna(), order).fit(method = 'css-mle', disp = 0)
arima_mod_aics[params] = arima_mod.aic
except:
pass
Run Code Online (Sandbox Code Playgroud)
我收到了这样的信息:
/usr/local/lib/python2.7/dist-packages/statsmodels-0.6.1-py2.7-linux-x86_64.egg/statsmodels/base/model.py:466: ConvergenceWarning: Maximum Likelihood optimization failed to converge. Check mle_retvals
"Check mle_retvals", ConvergenceWarning)
Run Code Online (Sandbox Code Playgroud)
我想忽略这个警告,我该怎么办?有什么建议吗?
提前致谢.
python ×7
data-munging ×3
pandas ×3
numpy ×2
python-2.7 ×2
scipy ×2
anaconda ×1
c# ×1
conda ×1
d3.js ×1
dictionary ×1
fuzzy-logic ×1
ipython ×1
list ×1
matplotlib ×1
random ×1
scripting ×1
statsmodels ×1
timestamp ×1