我确信这已被问到但我找不到,所以我对冗余道歉.
我想使用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) 我有一个值列表,其中包含我想要的 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) 我有一个图像,我使用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 颜色不兼容的缩放器。
在 Matplotlib 中创建二维图时,什么方法隐藏刻度线/线而不是标签?我想要这个问题的反面。我在Matplotlib API中没有看到合适的方法。
作为一种黑客,我考虑通过设置颜色来匹配背景(例如白色)来“隐藏”刻度线。有没有更好的办法?
在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的东西?
对于 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.