我有类似以下的数据:
[
[0, 4, 15]
[0, 3, 7]
[1, 5, 9]
[2, 4, 15]
]
Run Code Online (Sandbox Code Playgroud)
我用oneHotEncoder http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html#sklearn.preprocessing.OneHotEncoder.fit_transform预处理这个数据,所以它适合线性回归给我这个:
[
[1, 0, 0, 4, 15]
[1, 0, 0, 3, 7]
[0, 1, 0, 5, 9]
[0, 0, 1, 4, 15]
]
Run Code Online (Sandbox Code Playgroud)
但是,我希望将这些数据标准化.
到目前为止,我只是将数据规范化,如下所示:
preprocessing.normalize(data)
Run Code Online (Sandbox Code Playgroud)
但是,这会将所有列(包括类别列)标准化.
我的问题如下:
谢谢!
使用需要转储到PostgreSQL表中的大熊猫DataFrame。从我读到的内容来看,一次全部转储不是一个好主意,(并且我正在锁定数据库)而是使用该chunksize参数。此处的答案对工作流程很有帮助,但我只是在问块大小影响性能的价值。
In [5]: df.shape
Out[5]: (24594591, 4)
In [6]: df.to_sql('existing_table',
con=engine,
index=False,
if_exists='append',
chunksize=10000)
Run Code Online (Sandbox Code Playgroud)
将参数设置为较高或较低时,是否有建议的默认值,并且在性能上有区别吗?假设我有支持更大块大小的内存,它执行得更快吗?
更新:
如编写的那样,问题与Networkx版本<2.0有关.该from_pandas_dataframe方法已被删除.
要在Networkx> = 2.0中完成相同的任务,请参阅对已接受答案的更新.
尝试MultiGraph()使用networkx从pandas DataFrame 创建实例from_pandas_dataframe.我在下面的例子中做错了什么?
In [1]: import pandas as pd
import networkx as nx
df = pd.DataFrame([['geneA', 'geneB', 0.05, 'method1'],
['geneA', 'geneC', 0.45, 'method1'],
['geneA', 'geneD', 0.35, 'method1'],
['geneA', 'geneB', 0.45, 'method2']],
columns = ['gene1','gene2','conf','type'])
Run Code Online (Sandbox Code Playgroud)
首先尝试使用默认的nx.Graph():
In [2]: G= nx.from_pandas_dataframe(df, 'gene1', 'gene2', edge_attr=['conf','type'],
create_using=nx.Graph())
Run Code Online (Sandbox Code Playgroud)
作为一个非MultiGraph(),我错过了一个重复的边:
In [3]: G.edges(data=True)
Out[3]: [('geneA', 'geneB', {'conf': 0.45, 'type': 'method2'}),
('geneA', 'geneC', {'conf': 0.45, 'type': 'method1'}),
('geneA', 'geneD', {'conf': 0.35, 'type': 'method1'})]
Run Code Online (Sandbox Code Playgroud)
用 …
有时我的Ipython笔记本会崩溃,因为我print在一个大循环或一个递归函数中留下了一个语句.内核显示busy,stop按钮通常没有响应.最终Chrome会问我是否要杀死该页面或等待.
有没有办法限制给定单元格中的输出行数?或者任何其他方法来避免这个问题?
我很想知道是否有任何生物信息学工具能够处理multiFASTA文件,给我信息序列,长度,核苷酸/氨基酸含量等信息,并可能自动绘制描述性图.也可以使用R BIoconductor解决方案或BioPerl模块,但我找不到任何东西.
你能帮助我吗?非常感谢 :-)
是否可以使用费舍尔精确检验的矢量化来优化此计算?num_cases>〜1000000 时,运行时很麻烦。
import numpy as np
from scipy.stats import fisher_exact
num_cases = 100
randCounts = np.random.random_integers(100,size=(num_cases,4))
def testFisher(randCounts):
return [fisher_exact([[r[0],r[1]],[r[2], r[3]]])[0] for r in randCounts]
In [6]: %timeit testFisher(randCounts)
1 loops, best of 3: 524 ms per loop
Run Code Online (Sandbox Code Playgroud) 如何腌制或保存 scipy kde 以供以后使用?
import scipy.stats as scs
from sklearn.externals import joblib
kde = scs.gaussian_kde(data, bw_method=.15)
joblib.dump(kde, 'test.pkl')
Run Code Online (Sandbox Code Playgroud)
我尝试了上面并收到此错误:
PicklingError: Can't pickle <function gaussian_kde.set_bandwidth.<locals>.<lambda> at 0x1a5b6fb7b8>: it's not found as scipy.stats.kde.gaussian_kde.set_bandwidth.<locals>.<lambda>
Run Code Online (Sandbox Code Playgroud) 我的矩阵的每个单元格需要是由昂贵函数计算的分数.矩阵是对称的,这是我能想到填充每个单元格的最佳方法.
num_cases = len(case_dictionary.keys()) # num_cases = 10
SmallMatrix = np.zeros((num_cases,num_cases))
for CasesX in range(0,num_cases):
for CasesY in range(CasesX,num_cases):
SmallMatrix[CasesX,CasesY] = 1
Run Code Online (Sandbox Code Playgroud)
收益:
array([[ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[ 0., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
[ 0., 0., 1., 1., 1., 1., 1., 1., 1., 1.],
[ 0., 0., 0., 1., 1., 1., 1., 1., 1., 1.],
[ 0., 0., 0., 0., 1., 1., 1., 1., 1., 1.],
[ 0., …Run Code Online (Sandbox Code Playgroud) python ×6
numpy ×2
pandas ×2
scikit-learn ×2
scipy ×2
bioconductor ×1
bioperl ×1
biopython ×1
fasta ×1
matrix ×1
networkx ×1
optimization ×1
postgresql ×1