我想检查变量是否为None或numpy.array.我已经实现check_a了这样做的功能.
def check_a(a):
if not a:
print "please initialize a"
a = None
check_a(a)
a = np.array([1,2])
check_a(a)
Run Code Online (Sandbox Code Playgroud)
但是,这段代码引发了ValueError.什么是直接的方式?
ValueError Traceback (most recent call last)
<ipython-input-41-0201c81c185e> in <module>()
6 check_a(a)
7 a = np.array([1,2])
----> 8 check_a(a)
<ipython-input-41-0201c81c185e> in check_a(a)
1 def check_a(a):
----> 2 if not a:
3 print "please initialize a"
4
5 a = None
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Run Code Online (Sandbox Code Playgroud) 我想计算文本文件中所有单词的频率.
>>> countInFile('test.txt')
Run Code Online (Sandbox Code Playgroud)
{'aaa':1, 'bbb': 2, 'ccc':1}如果目标文本文件如下,则应返回:
# test.txt
aaa bbb ccc
bbb
Run Code Online (Sandbox Code Playgroud)
我在一些帖子之后用纯python实现了它.但是,由于文件大小(> 1GB),我发现纯python方式不足.
我认为借用sklearn的力量是一个候选人.
如果你让CountVectorizer计算每一行的频率,我猜你会通过总结每一列来获得字频率.但是,这听起来有点间接的方式.
使用python计算文件中单词的最有效和直接的方法是什么?
我的(非常慢)代码在这里:
from collections import Counter
def get_term_frequency_in_file(source_file_path):
wordcount = {}
with open(source_file_path) as f:
for line in f:
line = line.lower().translate(None, string.punctuation)
this_wordcount = Counter(line.split())
wordcount = add_merge_two_dict(wordcount, this_wordcount)
return wordcount
def add_merge_two_dict(x, y):
return { k: x.get(k, 0) + y.get(k, 0) for k in set(x) | set(y) }
Run Code Online (Sandbox Code Playgroud) 我想用Intellij"评估代码片段"功能评估包括lambda表达式的代码.但随后,Intellij提出了一个错误Unable to compile for target level 1.8. Need to run IDEA on java version at least 1.8, currently running on 1.6.0_65-b14-462-11M4609
评估代码非常简单,如下所示.
Set<Integer> set = new HashSet<>();
set.add(1);
set.stream().map(v->v).collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)
我的Intellij版本是14.0.3,根据官方文档,版本14支持lambda表达式评估.
该功能如何可用?

我通常通过端口转发访问从Mac OS X在Linux上运行的Jupyter笔记本,如下所示:
https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh
是否有可能从Windows 10而不是Mac OS做类似的事情?我想putty或WSL提供一个.
https://www.akadia.com/services/ssh_putty.html https://superuser.com/questions/1119946/windows-subsystem-for-linux-ssh-port-forwarding
我真的想知道如何在numpy/pandas上利用多核处理进行矩阵乘法.
我在想的是:
M = pd.DataFrame(...) # super high dimensional square matrix.
A = M.T.dot(M)
Run Code Online (Sandbox Code Playgroud)
由于产品数量众多,这需要大量的处理时间,我认为使用多线程进行巨大的矩阵乘法是很简单的.所以,我在谷歌搜索,但我找不到如何在numpy/pandas上做到这一点.我是否需要使用一些python内置线程库手动编写多线程代码?
是否可以创建包含列表类型字段的pandas.DataFrame?
例如,我想将以下csv加载到pandas.DataFrame:
id,scores
1,"[1,2,3,4]"
2,"[1,2]"
3,"[0,2,4]"
Run Code Online (Sandbox Code Playgroud) 我有一个拥有超过百万条记录的pandas数据框.其中一列是datetime.我的数据样本如下:
time,x,y,z
2015-05-01 10:00:00,111,222,333
2015-05-01 10:00:03,112,223,334
...
Run Code Online (Sandbox Code Playgroud)
我需要在特定时期内有效地获取记录.以下天真的方式非常耗时.
new_df = df[(df["time"] > start_time) & (df["time"] < end_time)]
Run Code Online (Sandbox Code Playgroud)
我知道在像MySQL这样的DBMS上,时间字段的索引通过指定时间段来获取记录是有效的.
我的问题是
df.index = df.time会使切片过程更快?我是一名mac用户,想要将R语言环境改为英语.
我知道defaults write应该在osx上设置R的语言环境.但是,奇怪的是,命令不起作用.
defaults write org.R-project.R force.LANG en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
当我通过执行R.app启动R时,正确显示英文消息,但Terminal.app显示日语消息:

我的环境如下:
sessionInfo()终端的结果:
> sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] ja_JP.UTF-8/ja_JP.UTF-8/ja_JP.UTF-8/C/ja_JP.UTF-8/ja_JP.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
Run Code Online (Sandbox Code Playgroud)
在R.app上:
R version 3.0.1 (2013-05-16)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] caret_5.17-7 grid_3.0.1 kernlab_0.9-18 lattice_0.20-15
Run Code Online (Sandbox Code Playgroud) 我想每两列使用 pandas.DataFrame 。
例如,我有以下数据框:
pd.DataFrame([[10,"5%", 20, "10%"],[30,"15%", 40,"20%"]], columns=['error1', '(%)', 'error2', '(%)'])
Run Code Online (Sandbox Code Playgroud)
然后,我想要得到的是以下数据框:
pd.DataFrame([["10 (5%)", "20 (10%)"],["30 (15%)", "40 (20%)"]], columns=['error1 (%)', 'error2 (%)'])
Run Code Online (Sandbox Code Playgroud)
我想在熊猫绘制的散点图的点之间添加线。我试过这个,但不起作用。我可以在散点图上放线吗?
pd.DataFrame([[1,2],[10,20]]).plot(kind="scatter", x=0, y=1, style="-")
pd.DataFrame([[1,2],[10,20]]).plot.scatter(0,1,style="-")
Run Code Online (Sandbox Code Playgroud)
python ×7
pandas ×5
numpy ×2
is-empty ×1
lambda ×1
locale ×1
macos ×1
matplotlib ×1
matrix ×1
nlp ×1
r ×1
scikit-learn ×1
ssh ×1
windows-10 ×1
word-count ×1