将这个excel数据的列副本转储到python numpy数组中最简单的方法是什么?

今天需要做一些过滤。 因为它会花费我至less一个小时在Excel中,我决定学习如何在大约30秒的Python中做到这一点。 最难的部分是粘贴从Excel中的数据列(一个string与回车分隔值?)到Python。 在matlab中我可以做这样的事情,但在Python中,我怀疑我需要也许把引号周围,并使用一个简单的\ n分析器或正则expression式? 谢谢您的帮助!

import scipy import numpy from scipy import signal N=10 Fc=0.1 Fs=1.14 h=scipy.signal.firwin(N, Fc, Fs/2) x = [23.57734807 24.6558011 23.60110497 25.6801105 24.75524862 23.70055249 23.50718232 23.56906077 22.82265193 23.78563536 21.47348066 22.15359116] 

我得到这个错误:

  24.6558011 ^ SyntaxError: invalid syntax 

我不知道x里面的数据是什么,但是如果它是一个string,你可以使用str.split

 import numpy as np s = """23.57734807 24.6558011 23.60110497 25.6801105 24.75524862 23.70055249 23.50718232 23.56906077 22.82265193 23.78563536 21.47348066 22.15359116 """ x = s.split() print x print np.array(x,dtype=float) ['23.57734807', '24.6558011', '23.60110497', '25.6801105', '24.75524862', '23.70055249', '23.50718232', '23.56906077', '22.82265193', '23.78563536', '21.47348066', '22.15359116'] [ 23.57734807 24.6558011 23.60110497 25.6801105 24.75524862 23.70055249 23.50718232 23.56906077 22.82265193 23.78563536 21.47348066 22.15359116] 

根据你的评论是所有的string,使用str.replacesplit

 import numpy as np x = """[23.57734807 24.6558011 23.60110497 25.6801105 24.75524862 23.70055249 23.50718232 23.56906077 22.82265193 23.78563536 21.47348066 22.15359116] """ arr = np.array(x.replace("[","").replace("]","").split(),dtype=float) print arr [ 23.57734807 24.6558011 23.60110497 25.6801105 24.75524862 23.70055249 23.50718232 23.56906077 22.82265193 23.78563536 21.47348066 22.15359116] 

你需要,在你的名单中的逗号

 x = [23.57734807, 24.6558011, 23.60110497, 25.6801105, 24.75524862, 23.70055249, 23.50718232, 23.56906077, 22.82265193, 23.78563536, 21.47348066, 22.15359116] 

它看起来像你试图把你的信号表示为一个Python列表。 因此,如果是这种情况,则需要用逗号来分隔x的每个项目。 换句话说,你需要做的是:

 x = [23.57734807, 24.6558011, 23.60110497, 25.6801105, 24.75524862, 23.70055249, 23.50718232, 23.56906077, 22.82265193, 23.78563536, 21.47348066, 22.15359116] 

在MATLAB中,不需要在每个数字之间加逗号,因为每个元素可以是逗号或空格分隔的,但对于Python列表,则需要逗号。