Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中将xlsx或ods列读取为numpy数组_Python_Arrays_Numpy_Xlsx_Ods - Fatal编程技术网

如何在python中将xlsx或ods列读取为numpy数组

如何在python中将xlsx或ods列读取为numpy数组,python,arrays,numpy,xlsx,ods,Python,Arrays,Numpy,Xlsx,Ods,现在我正在使用它,但它似乎非常慢,而且还将列打印为列表。此外,这里我手动将列添加到列表中。有没有更有效的方法使用numpy并将列作为数组读取 如果不是这样,我正在考虑将其转换为.txt或.csv,因为它们更易于阅读。什么是最有效的选择 另外,我在.ods和.xlsx中有相同的文件,所以使用其中任何一个都可以 import xlrd workbook = xlrd.open_workbook("Folds5x2_pp.xlsx","rb") sheets = workbook.sheet_na

现在我正在使用它,但它似乎非常慢,而且还将列打印为列表。此外,这里我手动将列添加到列表中。有没有更有效的方法使用numpy并将列作为数组读取

如果不是这样,我正在考虑将其转换为.txt或.csv,因为它们更易于阅读。什么是最有效的选择

另外,我在.ods和.xlsx中有相同的文件,所以使用其中任何一个都可以

import xlrd  
workbook = xlrd.open_workbook("Folds5x2_pp.xlsx","rb")
sheets = workbook.sheet_names()
print sheets
required_data = []
for sheet_name in sheets:
    sh = workbook.sheet_by_name(sheet_name)
    for rownum in range(sh.nrows):
        row_val = sh.row_values(rownum)
        required_data.append((row_val[0], row_val[1]))
print required_data
试用

或者你可以试试熊猫

试用

或者你可以试试熊猫

>>> from openpyxl import load_workbook
>>> wb = load_workbook('Folds5x2_pp.xlsx', read_only=True)
>>> print wb.sheetnames
['Sheet1', 'Sheet2', 'Sheet3']
>>> ws = wb.get_sheet_by_name('Sheet1')
>>> cols = 0  # column index 
>>> x2 = np.array([r[cols].value for r in ws.iter_rows()])
import pandas as pd; 
df = pd.read_excel('Folds5x2_pp.xlsx'); 
x2 = df.to_records()