如何堆叠n形状的矢量形状(x,),其中x可以是任意数字?
例如,
from numpy import *
a = ones((3,))
b = ones((2,))
c = vstack((a,b)) # <-- gives an error
c = vstack((a[:,newaxis],b[:,newaxis])) #<-- also gives an error
Run Code Online (Sandbox Code Playgroud)
hstack 工作正常,但在错误的维度上连接.
我正在尝试在matplotlib中绘制数据.我想隐藏盒子的上部和右部.有谁知道如何做到这一点?
谢谢你的帮助
我试图使用BeautifulSoup 提取此数据表的第一列和第三列.通过查看HTML,第一列有一个<th>标记.另一个感兴趣的列有<td>标记.在任何情况下,我所能得到的只是带有标签的列的列表.但是,我只想要文本.
table已经是一个列表,所以我不能使用findAll(text=True).我不知道如何以另一种形式获得第一列的列表.
from BeautifulSoup import BeautifulSoup
from sys import argv
import re
filename = argv[1] #get HTML file as a string
html_doc = ''.join(open(filename,'r').readlines())
soup = BeautifulSoup(html_doc)
table = soup.findAll('table')[0].tbody.th.findAll('th') #The relevant table is the first one
print table
Run Code Online (Sandbox Code Playgroud) 我想在seaborn中绘制一个群集图,由行和列聚类.我不想绘制树形图.
设置row_cluster=False或col_cluster=False删除树形图,但也停止聚类.
我如何仍然2D聚类但抑制树形图?
这个问题提供了将树形图线的宽度设置为0的方法.这个hack在seaborn中不起作用0.7.1.
我有一个矩阵,应该在对角线上有一个但是列混合在一起.

但是,如果没有明显的for循环,我不知道如何有效地交换行以在对角线上获得统一.我甚至不确定我会通过什么钥匙来排序.
有什么建议?
我有一个很大的时间序列,比如1e10,这是由记录神经活动(即电压)引起的.在进行进一步分析之前,我想对300 Hz和7000 Hz之间的数据进行带通滤波.下面,我发布了我设计的Butterworth滤波器的代码.如何使此过滤器更快?运行需要很长时间.
更新:示例数据
这是一个链接到数据,如将在每一行data.
至于格式化,每行代表不同的记录源,每列代表一个时间点.数据以20,000Hz采样.
def butter_bandpass(lowcut,highcut,fs,order=8):
nyq = 0.5*fs
low = lowcut/nyq
high = highcut/nyq
b,a = butter(order, [low, high], btype='band')
return b,a
def butter_bandpass_filter(data,lowcut,highcut,fs,order=8):
b,a = butter_bandpass(lowcut,highcut,fs,order=order)
return lfilter(b,a,data)
print 'Band-pass filtering data'
data = map(lambda channel: butter_bandpass_filter(channel,300,7000,20000),data)
Run Code Online (Sandbox Code Playgroud)
更新
与大多数NumPy一样,SciPy函数lfilter可以采用多维输入,因此map会产生不必要的开销.也就是说,人们可以重写
data = map(lambda channel:butter_bandpass_filter(channel,300,7000,20000),data)
Run Code Online (Sandbox Code Playgroud)
如
data = butter_bandpass_filter(data,300,7000,20000)
Run Code Online (Sandbox Code Playgroud)
默认情况下,lfilter操作在最后一个非单一轴上.对于2D矩阵,这意味着该函数应用于每一行,这正是我所需要的.可悲的是,它仍然太慢了.
python signal-processing numpy scientific-computing python-2.7
我有一个M x N矩阵.我想N用M x M矩阵乘以每列.以下是循环中的这个,但我不知道如何对其进行矢量化.
u=repmat(sin(2*pi*f*t),[n 1]);
W = rand(n);
answer = size(u);
for i=1:size(u,2)
answer(:,i) = W*u(:,i);
end
Run Code Online (Sandbox Code Playgroud) 在bash中我想提取许多文件名的一部分并将该输出保存到另一个文件中.
这些文件的格式为coffee_ {SOME NUMBERS I WANT} .freqdist.
#!/bin/sh
for f in $(find . -name 'coffee*.freqdist)
Run Code Online (Sandbox Code Playgroud)
该代码将找到所有coffee_ {SOME NUMBERS I WANT} .freqdist文件.现在,我如何创建一个只包含{SOME NUMBERS I WANT}的数组并将其写入文件?
我知道写入文件一将结束以下行.
> log.txt
Run Code Online (Sandbox Code Playgroud)
我错过了如何过滤文件名列表的中间部分.
我试图提取超过某个阈值的一维数组的所有值的索引.该数组大约为数量级1e9.
我的方法如下NumPy:
idxs = where(data>threshold)
Run Code Online (Sandbox Code Playgroud)
这需要花费超过20分钟的时间,这是不可接受的.如何加快此功能?或者,有更快的替代品吗?
(具体而言,Mac OS X运行10.6.7,1.86 GHz Intel,4GB RAM需要很长时间.)
如何根据这些边的权重更改networkx中图形中边的颜色?
以下代码仅提供所有黑色边缘,即使色彩图是喷射的! 
nx.draw_networkx(g,pos=pos,with_labels=True,edge_colors=[g[a][b]['weight'] for a,b in g.edges()], width=4,edge_cmap = plt.cm.jet)
Run Code Online (Sandbox Code Playgroud)
将边权重缩放到0到1之间不会改变任何东西.
我不确定上面的代码与相关问题中的代码有什么不同,除了我没有使用循环,draw_networkx因为我没有动画图.
python ×8
numpy ×4
matplotlib ×2
matrix ×2
bash ×1
html-parsing ×1
matlab ×1
networkx ×1
performance ×1
plot ×1
python-2.7 ×1
scipy ×1
seaborn ×1
shell ×1