小编Ste*_*ell的帖子

使用grep查找两个字符串中的任何一个而不改变行的顺序?

我确信这已被问到但我找不到,所以我对冗余道歉.

我想使用grep或egrep来查找其中包含"P"或"CA"的每一行,并将它们传递给新文件.我可以使用以下方法轻松完成:

egrep ' CA ' all.pdb > CA.pdb
Run Code Online (Sandbox Code Playgroud)

要么

egrep ' P ' all.pdb > P.pdb
Run Code Online (Sandbox Code Playgroud)

我是regex的新手,所以我不确定它的语法or.

更新: 输出行的顺序很重要,即我不希望输出对匹配的字符串排序.以下是一个文件的前8行示例:

ATOM      1 N    THR U  27     -68.535  88.128 -17.857  1.00  0.00      1H5  N  
ATOM      2 HT1  THR U  27     -69.437  88.216 -17.434  0.00  0.00      1H5  H  
ATOM      3 HT2  THR U  27     -68.270  87.165 -17.902  0.00  0.00      1H5  H  
ATOM      4 HT3  THR U  27     -68.551  88.520 -18.777  0.00  0.00      1H5  H  
ATOM      5 CA   LYS B 122 …
Run Code Online (Sandbox Code Playgroud)

regex grep protein-database

3
推荐指数
1
解决办法
3680
查看次数

使用列标签列表从 DataFrame 行中选择列

我有一个值列表,其中包含我想要的 pandas DataFrame 每一行的列索引。如何将此列标签列表映射到 DataFrame 的每一行?

如果我只是使用列表对 DataFrame 进行索引,整个列表就会应用于每一行,如下所示。

In [10]: df = pd.DataFrame(np.random.randn(5,2), columns=list('AB'))

In [11]: df
Out[11]: 
          A         B
0 -0.082240 -2.182937
1  0.380396  0.084844
2  0.432390  1.519970
3 -0.493662  0.600178
4  0.274230  0.132885

In[12]: selection = list('ABBAA')

In[13]: selection
Out[13]: ['A', 'B', 'B', 'A', 'A']

In[14]: df[selection]
Out[14]:
          A         B         B         A         A
0 -0.082240 -2.182937 -2.182937 -0.082240 -0.082240
1  0.380396  0.084844  0.084844  0.380396  0.380396  
2  0.432390  1.519970  1.519970  0.432390  0.432390
3 -0.493662  0.600178  0.600178 -0.493662 -0.493662 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

3
推荐指数
1
解决办法
1126
查看次数

将RGB白色设置为透明?

我有一个图像,我使用matplotlib.pyplot.imread它加载到 python 中,它最终作为一个numpy包含 rgb 值数组的数组。这是一个虚拟片段,除了两个像素之外都是白色的:

>>> test
array([[[255, 255, 255],
        [255, 255, 255]],

       [[  1, 255, 255],
        [255, 255, 255]],

       [[255, 255, 255],
        [255,   6, 255]]], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)

我想为所有白色像素创建一个蒙版。我想我可以做类似的事情

>>> mask = (test != [255, 255, 255])
Run Code Online (Sandbox Code Playgroud)

这会给:

array([[[False, False, False],
        [False, False, False]],

       [[ True,  True,  True],
        [False, False, False]],

       [[False, False, False],
        [ True,  True,  True]]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

或者,我认为有一个输入参数imshow可以执行此操作,但文档不清楚如何执行。它似乎alpha会改变整个图像并vmax接受一个似乎与 RGB 颜色不兼容的缩放器。

python numpy mask matplotlib imshow

2
推荐指数
1
解决办法
2578
查看次数

对于 Matplotlib 图,如何隐藏刻度线但保留刻度标签?

在 Matplotlib 中创建二维图时,什么方法隐藏刻度线/线而不是标签?我想要这个问题的反面。我在Matplotlib API中没有看到合适的方法。

作为一种黑客,我考虑通过设置颜色来匹配背景(例如白色)来“隐藏”刻度线。有没有更好的办法?

python plot matplotlib

2
推荐指数
1
解决办法
1669
查看次数

如何从变量创建字符串?

在R中,我想使用存储的值创建一个字符串.在Python中,我会使用f字符串来提高可读性.

>>> a_val = 1
>>> b_val = 99

>>> fname_python = f'a{a_val}_b{b_val}.csv'
>>> fname_python
a1_b99.csv
Run Code Online (Sandbox Code Playgroud)

我在R,(1)paste和(2)中找到了两种方法sprintf.

a_val <- 1
b_val <- 99

# paste and collapse are best when you have an existing vector
# fname1 <- paste(c('a', a_val, '_b', b_val, '.csv'), collapse = '')  
# paste0 is better in this example
fname1 <- paste0('a', a_val, '_b', b_val, '.csv')
# 'a1_b99.csv'

fname2 <- sprintf('a%d_b%d.csv', a_val, b_val)
# 'a1_b99.csv'
Run Code Online (Sandbox Code Playgroud)

有没有更类似于Python的f-strings的东西?

string r

1
推荐指数
1
解决办法
67
查看次数

当某些列不存在时,从 DataFrame 中删除列列表

对于 Pandas DataFrame,我可以使用删除任何现有列

data.drop([col], axis=1)
Run Code Online (Sandbox Code Playgroud)

如果我想删除几列,只要它们都存在于数据中,我可以使用

data.drop(list_of_cols, axis=1)
Run Code Online (Sandbox Code Playgroud)

如果某些列不存在,我如何删除几列。我想确保我的列表中没有列在数据中。

是否有一种标准方法可以删除列列表而忽略那些不存在的列而不是抛出KeyError.

python pandas

1
推荐指数
1
解决办法
391
查看次数

标签 统计

python ×4

matplotlib ×2

pandas ×2

dataframe ×1

grep ×1

imshow ×1

mask ×1

numpy ×1

plot ×1

protein-database ×1

r ×1

regex ×1

string ×1