将这个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.replace
和split
:
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列表,则需要逗号。