如何将行添加到numpy数组?
我有一个数组A:
A = array([[0, 1, 2], [0, 2, 0]])
Run Code Online (Sandbox Code Playgroud)
如果X中每行的第一个元素满足特定条件,我希望从另一个数组X向此数组添加行.
Numpy数组没有像列表那样的"附加"方法,或者看起来如此.
如果A和X是列表,我只会这样做:
for i in X:
if i[0] < 3:
A.append(i)
Run Code Online (Sandbox Code Playgroud)
是否有一种相似的方式?
谢谢,S ;-)
给出两个数据帧a和b:
> a
a b c
1 -0.2246894 -1.48167912 -1.65099363
2 0.5559320 -0.87898575 -0.15634590
3 1.8469466 -0.01487524 -0.53098215
4 -0.6875051 0.23880967 0.01824621
5 -0.6735163 0.75485292 0.44154092
> b
a c
1 0.4287284 -0.3295925
2 0.5201492 0.3341251
3 -2.6355570 1.7916780
4 -1.3645337 1.3642276
5 -0.4954542 -0.6660001
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法来连接这些以便返回下面表单的新数据框?
> new
a b c
1 -0.2246894 -1.48167912106676 -1.65099363
2 0.5559320 -0.878985746842256 -0.15634590
3 1.8469466 -0.0148752354840942 -0.53098215
4 -0.6875051 0.238809666690982 0.01824621
5 -0.6735163 0.754852923524198 0.44154092
6 0.4287284 NA -0.32959248
7 …Run Code Online (Sandbox Code Playgroud) 我有一个包含两列的文件,即
1 a
2 b
3 c
Run Code Online (Sandbox Code Playgroud)
我希望将此文件读入字典,以便第1列是键,第2列是值,即
d = {1:'a', 2:'b', 3:'c'}
Run Code Online (Sandbox Code Playgroud)
文件很小,因此效率不是问题.
给定一个矩阵:
[,1] [,2]
[1,] 0 0.0
[2,] -1 0.8
Run Code Online (Sandbox Code Playgroud)
R中迭代矩阵并将所有非零项的位置作为索引返回的最快方法是什么?
我希望从目录中读取文件,并迭代地对每个文件执行操作.此操作不需要更改文件.
我明白我应该使用for循环.到目前为止,我尝试过:
FILES = ls('path\to\folder');
for i = 1:size(FILES, 1);
STRU = pdbread(FILES{i});
end
Run Code Online (Sandbox Code Playgroud)
这里返回的错误告诉我,一个新手,使用ls()列出目录不会将内容分配给数据结构.
其次,我尝试创建一个文件,在每行包含文件的路径,例如,
C:\Documents and Settings\My Documents\MATLAB\asd.pdb
C:\Documents and Settings\My Documents\MATLAB\asd.pdb
Run Code Online (Sandbox Code Playgroud)
然后我使用以下代码读取此文件:
fid = fopen('paths_to_files.txt');
FILES = textscan(fid, '%s');
FILES = FILES{1};
fclose(fid);
Run Code Online (Sandbox Code Playgroud)
此代码读取文件,但创建一个换行符中存在空格的换行符,即
'C:\Documents'
'and'
'Setting\My'
'Documents\MATLAB\asd.pdb'
Run Code Online (Sandbox Code Playgroud)
最后,我打算使用for循环
for i = 1:size(FILES, 1)
PDB = pdbread(char(FILES{i}));
Run Code Online (Sandbox Code Playgroud)
读取每个文件,但pdbread()抛出错误,声明文件格式不正确或不存在.
这是因为读入路径文件时路径的换行符分隔?
任何帮助或建议都非常适用.
谢谢,S :-)
我已经阅读了Python的答案:将列表切成n个近似等长的分区问题.
这是公认的答案:
def partition(lst, n):
division = len(lst) / float(n)
return [ lst[int(round(division * i)): int(round(division * (i + 1)))] for i in xrange(n) ]
Run Code Online (Sandbox Code Playgroud)
我想知道,为了将项目随机分配给分区而不是增量分配,如何修改这些解决方案.
谢谢,S :-)
我有一个非常基本的问题.
假设我调用一个函数,例如,
def foo():
x = 'hello world'
Run Code Online (Sandbox Code Playgroud)
如何让函数以这样的方式返回x,我可以将它用作另一个函数的输入或者在程序体内使用变量?
当我使用return并在另一个函数中调用该变量时,我得到一个NameError.
我希望使用subprocess从python 调用sed.我尝试使用的脚本如下.但是,这会将sed输出传输到标准终端.似乎在我的subprocess.call语句中无法识别'>'运算符.有什么建议?
import sys
import os
import subprocess
files = os.listdir(sys.argv[1])
count = 0
for f in files:
count += 1
inp = sys.argv[1] + f
outp = '../' + str(count) + '.txt'
sub = subprocess.call(['sed', 's/\"//g', inp, '>', outp])
Run Code Online (Sandbox Code Playgroud)
另外 - 我的文件名中有空格,即"file1 .txt".这可能是问题吗?当我从终端调用sed时,我的sed命令工作正常,而不是从脚本调用.
谢谢.
我原本打算使用MATLAB来解决这个问题,但内置函数的局限性不符合我的目标.NumPy也会出现同样的限制.
我有两个制表符分隔的文件.第一个是显示蛋白质结构内部数据库的氨基酸残基,频率和计数的文件,即
A 0.25 1
S 0.25 1
T 0.25 1
P 0.25 1
Run Code Online (Sandbox Code Playgroud)
第二个文件由氨基酸的四联体和它们出现的次数组成,即
ASTP 1
Run Code Online (Sandbox Code Playgroud)
注意,有超过8,000个这样的四胞胎.
基于每个氨基酸的出现的背景频率和四胞胎的数量,我的目标是计算每个四联体的多项式概率密度函数,并随后将其用作最大似然计算中的期望值.
多项分布如下:
f(x|n, p) = n!/(x1!*x2!*...*xk!)*((p1^x1)*(p2^x2)*...*(pk^xk))
Run Code Online (Sandbox Code Playgroud)
其中x是具有固定概率p的n次试验中每个k个结果的数量.在我的计算中,n在所有情况下都是4四.
我创建了四个函数来计算这个分布.
# functions for multinomial distribution
def expected_quadruplets(x, y):
expected = x*y
return expected
# calculates the probabilities of occurence raised to the number of occurrences
def prod_prob(p1, a, p2, b, p3, c, p4, d):
prob_prod = (pow(p1, a))*(pow(p2, b))*(pow(p3, c))*(pow(p4, d))
return prob_prod
# factorial() and multinomial_coefficient() work in tandem to calculate C, the …Run Code Online (Sandbox Code Playgroud) 我有一个嵌套列表,包含~30,000个子列表,每个子列表有三个条目,例如,
nested_list = [['x', 'y', 'z'], ['a', 'b', 'c']].
Run Code Online (Sandbox Code Playgroud)
我希望创建一个函数,以便将此数据结构输出为制表符分隔格式,例如,
x y z
a b c
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢!
谢谢,Seafoid.