我想要做的是让脚本计算一些东西,准备一个绘图并将已经获得的结果显示为pylab.figure - 在python 2(特别是python 2.7)中使用稳定的matplotlib(1.1.1).
在python 3(带有matplotlib git build ...版本1.2.x的python 3.2.3)中,这很好用.作为一个简单的例子(通过time.sleep()模拟冗长的计算)考虑
import pylab
import time
import random
dat=[0,1]
pylab.plot(dat)
pylab.ion()
pylab.draw()
for i in range (18):
dat.append(random.uniform(0,1))
pylab.plot(dat)
pylab.draw()
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
在python 2(版本2.7.3 vith matplotlib 1.1.1)中,代码运行干净而没有错误,但没有显示图.使用python2解释器进行一些试验和错误似乎建议用pylab.show()替换pylab.draw(); 这样做一次显然是足够的(不是,就像在绘图中每次更改/添加之后调用它一样).因此:
import pylab
import time
import random
dat=[0,1]
pylab.plot(dat)
pylab.ion()
pylab.show()
for i in range (18):
dat.append(random.uniform(0,1))
pylab.plot(dat)
#pylab.draw()
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
但是,这也不起作用.它再次运行干净,但没有显示数字.它似乎只在等待用户输入时这样做.我不清楚为什么会这样,但是当将raw_input()添加到循环中时,最终会显示该图
import pylab
import time
import random
dat=[0,1]
pylab.plot(dat)
pylab.ion()
pylab.show()
for i in range (18):
dat.append(random.uniform(0,1))
pylab.plot(dat)
#pylab.draw()
time.sleep(1)
raw_input()
Run Code Online (Sandbox Code Playgroud)
有了这个,脚本当然会在显示情节时等待用户输入,并且在用户点击进入之前不会继续计算数据.当然,这不是意图.
这可能是由不同版本的matplotlib(1.1.1和1.2.x)或不同的python版本(2.7.3和3.2.3)引起的.
有没有办法用python 2和一个稳定的(1.1.1)matplotlib完成上面的脚本(第一个)在python …
我有一个R数据框,保存在Database02.Rda中.加载它
import rpy2.robjects as robjects
robjects.r.load("Database02.Rda")
Run Code Online (Sandbox Code Playgroud)
工作良好.然而:
print(robjects.r.names("df"))
Run Code Online (Sandbox Code Playgroud)
产量
NULL
Run Code Online (Sandbox Code Playgroud)
另外,作为示例,列214(如果我们从0开始计数,则为213)被命名为REGION.
print(robjects.r.table(robjects.r["df"][213]))
Run Code Online (Sandbox Code Playgroud)
工作良好:
Region 1 Region 2 ...
9811 3451 ...
Run Code Online (Sandbox Code Playgroud)
但我们也应该能够做到
print(robjects.r.table("df$REGION"))
Run Code Online (Sandbox Code Playgroud)
然而,这导致了
df$REGION
1
Run Code Online (Sandbox Code Playgroud)
(它也适用于根本不存在的列名); 也:
print(robjects.r.table(robjects.r["df"]["REGION"]))
Run Code Online (Sandbox Code Playgroud)
给出错误:
TypeError: SexpVector indices must be integers, not str
Run Code Online (Sandbox Code Playgroud)
现在,文档说,名称不能用于python中的子集化.我是否正确地假设在使用python/rpy2加载数据框时,未使用其余数据导入列名?我是否正确地说,访问它们的最简单方法是将它们保存并加载为单独的列表并在python中将字符串映射到列索引号的名称?然而,这似乎不是很通用.有没有办法直接提取列名?
我使用的R,python,rpy2的版本是:R:3.2.2 python:3.5.0 rpy2:2.7.8
在将数据集拆分为测试和训练集后,我已在列车集上应用Logistic回归,但我得到了上述错误.我试图解决它,当我试图在控制台中打印我的响应向量y_train时,它会打印整数值,如0或1.但当我将其写入文件时,我发现值是浮点数,如0.0和1.0.如果那就是问题,我怎么能过来呢.
lenreg = LogisticRegression()
print y_train[0:10]
y_train.to_csv(path='ytard.csv')
lenreg.fit(X_train, y_train)
y_pred = lenreg.predict(X_test)
print metics.accuracy_score(y_test, y_pred)
Run Code Online (Sandbox Code Playgroud)
StrackTrace如下,
Traceback (most recent call last):
File "/home/amey/prog/pd.py", line 82, in <module>
lenreg.fit(X_train, y_train)
File "/usr/lib/python2.7/dist-packages/sklearn/linear_model/logistic.py", line 1154, in fit
self.max_iter, self.tol, self.random_state)
File "/usr/lib/python2.7/dist-packages/sklearn/svm/base.py", line 885, in _fit_liblinear
" class: %r" % classes_[0])
ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: 0.0
Run Code Online (Sandbox Code Playgroud)
与此同时,我遇到了无法回答的链接.有解决方案吗?
我一直在用头撞墙,试图从新闻来源“SNL 财经”检索内容。我拥有有效的凭据,因此理论上我应该能够以编程方式访问他们的新闻内容。
简而言之,我尝试执行以下脚本但没有成功:
s = requests.Session()
client_id = "..."
client_secret = "..."
token_url = "https://www.snl.com/SNL.Services.Security.Service/oauth/token"
protected_url = "https://www.snl.com/web/client?auth=inherit#news/article?id=40666532&KeyProductLinkType=14"
request_data = {
"client_id": client_id,
"client_secret": client_secret,
"scope": "https://www.snl.com",
"grant_type": "refresh_token",
"refresh_token": refresh_token
}
token_response = s.post(token_url, data=request_data)
### token response is in jwt format, including token_type, expires_in, scope, etc. ###
token = json.loads(token_response.text)["access_token"].split('>')[1].split('<')[0]
request_data["token"] = token
article = s.post(protected_url, headers=request_data)
Run Code Online (Sandbox Code Playgroud)
可悲的是,这失败了。我最终得到了 200 响应,但它似乎只是登录页面(老实说,我不完全确定我在看什么)。
为了了解更多背景信息,我添加了在整个身份验证过程中填充的浏览器信息:
尝试访问受保护的url,重定向到以下url(省略snl基):
/web/client?auth=inherit&contextType=external&username=string&enablePersistentLogin=true&OverrideRetryLimit=0&SwitchGetToPostLimit=50000&contextValue=%2Foam&password=secure_string&challenge_url=https%3A%2F%2Fwww.snl.com%2Fweb%2Fclient%3Fauth%3Dinherit&request_id=-6149669210818920852&authn_try_count=0&locale=en_US&resource_url=https%253A%252F%252Fwww.snl.com%252FInteractiveX%252FDefault.aspx%253Ftarget%253Dnews%25252Farticle%25253Fid%25253D40666532%252526KeyProductLinkType%25253D14%2526SNL3%253D1
Run Code Online (Sandbox Code Playgroud)此处显示请求标头。
请求 cookie如下所示。
另外,我有点困惑为什么SNL_OAUTH_TOKEN
上面链接(第二个链接)中的令牌值与我从脚本收到的 jwt 令牌响应中显示的值不同。
这里的任何指导将不胜感激。我也很乐意发送任何其他有用的非个人信息。
谢谢你!
...帮助和在线文档说,函数scipy.stats.pareto.fit将要拟合的数据集以及变量b(指数),位置,比例作为变量。结果是三元组(指数,位置,比例)
从相同的分布生成数据应导致适合查找用于生成数据的参数,例如(使用python 3 colsole)
$ python
Python 3.3.0 (default, Dec 12 2012, 07:43:02)
[GCC 4.7.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Run Code Online (Sandbox Code Playgroud)
(在下面的代码行中,省略了python控制台提示符“ >>>”)
dataset=scipy.stats.pareto.rvs(1.5,size=10000) #generating data
scipy.stats.pareto.fit(dataset)
Run Code Online (Sandbox Code Playgroud)
但是这导致
(1.0, nan, 0.0)
Run Code Online (Sandbox Code Playgroud)
(指数1,应为1.5)和
dataset=scipy.stats.pareto.rvs(1.1,size=10000) #generating data
scipy.stats.pareto.fit(dataset)
Run Code Online (Sandbox Code Playgroud)
结果是
(1.0, nan, 0.0)
Run Code Online (Sandbox Code Playgroud)
(指数1,应为1.1)和
dataset=scipy.stats.pareto.rvs(4,loc=2.0,scale=0.4,size=10000) #generating data
scipy.stats.pareto.fit(dataset)
Run Code Online (Sandbox Code Playgroud)
(指数应为4,位置应为2,比例应为0.4)
(1.0, nan, 0.0)
Run Code Online (Sandbox Code Playgroud)
等调用fit函数时给出另一个指数
scipy.stats.pareto.fit(dataset,1.4)
Run Code Online (Sandbox Code Playgroud)
总是精确地返回此指数
(1.3999999999999999, nan, 0.0)
Run Code Online (Sandbox Code Playgroud)
显而易见的问题是:我是否会完全误解此fit函数的用途,它的用法是否有所不同,还是只是被破坏了?
备注:在有人提到像Aaron Clauset网页(http://tuvalu.santafe.edu/~aaronc/powerlaws/)上比scipy.stats方法更可靠之前,应该使用它:可能是对的,但是它们也非常非常非常耗时,并且在普通PC上处理10000点的数据集需要花费很多小时(可能是几天,几周,几年)。
编辑:哦:拟合函数的参数不是分布的指数而是指数减1(但这不会改变上述问题)
系统更新后,我在尝试调用pip
(或pip3.7
或pip3
) 时收到此错误:
$ pip3.7
Traceback (most recent call last):
File "/usr/bin/pip3.7", line 11, in <module>
load_entry_point('pip==19.0.3', 'console_scripts', 'pip3.7')()
File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 489, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2843, in load_entry_point
return ep.load()
File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2434, in load
return self.resolve()
File "/usr/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2440, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/usr/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser …
Run Code Online (Sandbox Code Playgroud) 长话短说
<importedGroupid>:<importedArtifactid>:jar:1.0
Maven在存储库中找不到file://<homeDirectory>/.m2/repository/
。包裹实际上在<homeDirectory>/.m2/repository/<importedGroupid>/<importedArtifactid>/1.0/
我并不认为自己理解 Maven,但我能想到的两个潜在原因是:
:
它会与and混淆/
(即 UNIX 风格的路径分隔符与:
Maven 中的任何含义),或者:
和/
实际上被解释为相同,则它搜索的路径包括jar
实际目录结构中不存在的另一个子目录级别。详细说明
我试图在 Maven 中本地导入一个包(因为该包没有在线部署)。stackoverflow 上的各种答案(例如,this和thismvn install
)建议在包含包的 jar 上运行,如下所示(假设 jar 位于/usr/share/java
,版本为 1.0 等):
mvn install:install-file -Dfile=/usr/share/java/<importedArtifactid>-1.0-SNAPSHOT.jar -DgroupId=<importedGroupid> -DartifactId=<importedArtifactid> -Dversion=1.0 -Dpackaging=JAR -DgeneratePom=true
Run Code Online (Sandbox Code Playgroud)
并通过添加以下内容在当前包中定义它pom.xml
:
<repository>
<id>repository</id>
<url>file://${user.home}/.m2/repository/</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
该mvn install
命令将包部署到<homeDirectory>/.m2/repository/
. 到目前为止,这工作得很好:
<prompt> $ mvn install:install-file -Dfile=/usr/share/java/<importedArtifactid>-1.0-SNAPSHOT.jar -DgroupId=<importedGroupid> -DartifactId=<importedArtifactid> -Dversion=1.0 -Dpackaging=JAR -DgeneratePom=true
[INFO] Scanning for projects...
[INFO] …
Run Code Online (Sandbox Code Playgroud) 问题与解释
在Java中是否有办法将HashSet<Class>
参数移交给方法,以便该方法接受HashSets的子类Class
?
如果有一个类的几个子类,这些子类的差异与所讨论的方法无关,那么这将非常有用.如果这是不可能的,那么处理这个的唯一选择似乎就是
......两者都不太实际.
版本是Java 8(openjdk 1.8.0).
例
假设所有文件都在同一目录中,这样我们就不必担心彼此导入的包和文件.考虑NNB类和子类NNC(NNB的子类).
NNB.java
:
import java.util.HashMap;
import java.util.Map;
public class NNB {
public final Map<Long, Double> dict;
public NNB () {
this.dict = new HashMap<Long, Double>();
int c = 0;
while (c<10) {
Long XX = (long)10;
Double YY = 2.0;
this.dict.merge(XX, YY, Double::sum);
System.out.println(dict);
c++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
NNC.java
:
import java.util.HashMap;
import java.util.Map;
public class NNC extends NNB {
private Map<Long, Double> dict2;
public NNC …
Run Code Online (Sandbox Code Playgroud) 我为什么想要这个?
我想使用最初于 2007 年构建并根据变更日志于 2016 年最新更新的C 软件包。我认为它会干净地编译回来。
可悲的是,现在情况已不再如此。
错误
运行./configure
和make
,我得到一个Multiply defined
错误:
gcc -g -O2 -o laplaafit laplaafit.o multimin.o common.o lib/libgnu.a -lgsl -lgslcblas -lm
/usr/bin/ld: common.o:/home/<user>/build/subbotools/subbotools-1.3.0/common.c:27: multiple definition of `Size'; laplaafit.o:/home/<user>/build/subbotools/subbotools-1.3.0/laplaafit.c:38: first defined here
/usr/bin/ld: common.o:/home/<user>/build/subbotools/subbotools-1.3.0/common.c:26: multiple definition of `Data'; laplaafit.o:/home/<user>/build/subbotools/subbotools-1.3.0/laplaafit.c:37: first defined here
Run Code Online (Sandbox Code Playgroud)
具体来说,两个文件 (laplaafit.c
和common.c
) 都有声明
double *Data; /*the array of data*/
unsigned Size;/*the number of data*/
Run Code Online (Sandbox Code Playgroud)
在两个文件的代码中进一步定义了两个变量(我相信使用load(&Data,&Size,infile);
which 调用函数int load()
,在该函数中从文件common.c
读取数组并确定其长度)。*Data
Size …
python ×5
java ×2
archlinux ×1
c ×1
compilation ×1
hashset ×1
include ×1
inheritance ×1
linux ×1
matplotlib ×1
maven ×1
maven-3 ×1
oauth ×1
pip ×1
pom.xml ×1
power-law ×1
python-2.7 ×1
python-3.x ×1
r ×1
repository ×1
rpy2 ×1
scikit-learn ×1
scipy ×1