我有一个23,000乘200的矩阵,在R中作为数据帧读取,但处理它比在MATLAB中花费更长的时间.
例如,在MATLAB中我输入image(X)并且它需要不到一秒钟,而在R中需要约一分钟来生成图像.
如果我这样做dim(X),那就是同一个故事.
有什么想法为什么R与MATLAB相比可能无法有效地处理这样的小矩阵?
我很喜欢R,只是想知道减速的可能来源.
嗨,我想在已安装hadoop的服务器上运行hadoop,但我不知道hadoop所在的目录.服务器由服务器管理员配置.
为了加载hadoop,我使用dotkit包中的use命令.
可能有几个解决方案,但想知道hadoop软件包的安装位置,如何设置$ HADOOP_HOME变量,以及如何approp运行hadoop流媒体作业,例如$ HADOOP_HOME/bin/hadoop jar $ HADOOP_HOME/mapred/contrib /streaming/hadoop-streaming.jar,又名,http://wiki.apache.org/hadoop/HadoopStreaming.
谢谢!任何帮助将不胜感激!
我正在使用os.system向系统提交命令.
也就是说,
import os
os.system(my_cmd)
Run Code Online (Sandbox Code Playgroud)
但我想知道如何获得输出,即,让我们说我在bash中并输入我的cmd,我会得到这种形式的输出:
Job <57960787> is submitted to queue <queueq>.
Run Code Online (Sandbox Code Playgroud)
我怎样才能在python中使用os.system(cmd),获取文本输出,并解析它以获取作业ID,57960787.
谢谢!
我想逐行读取python中的文件,但在某些情况下(基于if条件)我还想读取文件中的下一行,然后继续以相同的方式读取它.
例:
file_handler = open(fname, 'r')
for line in file_handler:
if line[0] == '#':
print line
else:
line2 = file_handler.readline()
print line2
Run Code Online (Sandbox Code Playgroud)
基本上在这个例子中我试图逐行读取它,但是当行没有开始时#我想读下一行,打印它,然后继续读取line2之后的行.这只是一个例子,我在代码中遇到类似的错误,但我的目标是标题中所述.
但是我会得到一个错误ValueError: Mixing iteration and read methods would lose data.
是否有可能以更聪明的方式做我想做的事情?
连接多个文件的好方法是什么,但删除标题行(事先未知的标题行数),并将第一个文件标题行保留为新连接文件中的标题?
我想在python中这样做,但只要我可以使用subprocess来调用unix命令,awk或其他语言也会工作.
注意:标题行都以#开头.
短Q,
在mac OS sierra终端中,
如果我做:
whereis python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
然后,如果我这样做:
/usr/bin/python它打开python 2.10
但如果我执行
python它会打开python 2.7.8.
我怎么知道python 2.7.8的whereis以及为什么whereis指向不同于默认版本的python版本?
我有一个数据框,其索引也包含小时:秒:...但我只想让它包含日期为年,月,日.
索引是否仍然可以是DateTimeIndex,但只包含年,月,日?
目前的指数如下:
my_index = DatetimeIndex(['2017-08-25', '2017-08-24', '2017-08-23', '2017-08-22',
'2017-08-21', '2017-08-20', '2017-08-19', '2017-08-18',
'2017-08-17', '2017-08-16',
...
'2015-07-19', '2015-07-18', '2015-07-17', '2015-07-16',
'2015-07-15', '2015-07-14', '2015-07-13', '2015-07-12',
'2015-07-11', '2015-07-10'],
dtype='datetime64[ns]', length=778, freq=None)
Run Code Online (Sandbox Code Playgroud)
我可以:
only_date_index = [el.date() for el in my_index]
Run Code Online (Sandbox Code Playgroud)
但是如果我想在pandas中使用resample函数,我会得到错误:TypeError:只对DatetimeIndex,TimedeltaIndex或PeriodIndex有效,但得到了一个'Index'实例.
我想直接将文件读取到 python 中而不需要保存它 - zip 文件相对较小并且绝对适合内存。
我目前正在尝试这个:
import urllib
import json
access_url = urllib.request.urlopen('http://api.eia.gov/bulk/COAL.zip')
data = json.loads(access_url.read().decode())
Run Code Online (Sandbox Code Playgroud)
但我收到错误:UnicodeDecodeError: 'utf-8' 编解码器无法解码位置 15 中的字节 0xa0: 无效的起始字节
什么额外步骤可以解决这个问题?
我正在使用Python 3.6。
谢谢!
我是subprocess.call函数的新手,我尝试过同一个调用的不同组合,但它不起作用.
我正在尝试执行以下命令:
cmd = 'sort -k1,1 -k4,4n -k5,5n '+outpath+fnametempout+' > '+outpath+fnameout
print cmd
Run Code Online (Sandbox Code Playgroud)
如果我尝试通话,我会收到错误消息:
cmd = cmd.split(" ")
print cmd
subprocess.call(cmd)
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
sort: stat failed: >: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我试图运行一个bash程序,它接受一些命令行输入名称,然后将一个数组作为命令行输入.
也就是说,
#!/bin/bash
name1=$1
name2=$2
my_array_input=("dog" "cat" "lion")
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我将name1和name2作为输入,并在脚本中声明和设置my_array_input.
在我的真实脚本中,我还想将name1和name2作为$ 1和$ 2,但我也希望能够从用户那里获取一个(未知大小/可变大小)my_array_input.用户可以输入不同长度的数组,并根据自己的意愿输入自己的动物名称......
请注意,所有输入都应该是命令行输入.
有没有使用bash脚本执行此操作的技巧?
谢谢!