python读Excel数据成numpy数组

        今年研究生数模的时候用到了,113.xlsx 是325个样本数据,每个样本数据126个初步筛选的特征

@

按列读

import xlrd
import numpy as np

def excel2matrix(path):
    data = xlrd.open_workbook(path)
    table = data.sheets()[0]
    nrows = table.nrows  # 行数
    ncols = table.ncols  # 列数
    datamatrix = np.zeros((nrows, ncols))
    for i in range(ncols):
        cols = table.col_values(i)
        datamatrix[:, i] = cols
    return datamatrix

pathX = '113.xlsx'  #  113.xlsx 在当前文件夹下
x = excel2matrix(pathX)
print(x)
print(x.shape)

输出

[[0.01719892 0.86457238 0.01742387 ... 1. 1. 0.9999603 ]
[0.0319469 0.86909879 0.01730402 ... 0.99351703 0.99445369 0.99997023]
[0.02805216 0.87040528 0.01724861 ... 0.99051946 0.99251572 0.99993467]
...
[0.63507299 0.03643383 0.99306191 ... 0.03441377 0.01650907 0.00848835]
[0.64464586 0.05750134 0.99653096 ... 0.03317541 0.01337929 0.00424418]
[0.64765852 0.09031475 1. ... 0.03193705 0.01024951 0. ]]
 
(325, 126)

简单,但是很有用的一个小东西

按行读

当然你可以按行读

import xlrd
import numpy as np

def excel2matrix(path):
    data = xlrd.open_workbook(path)
    table = data.sheets()[0]
    nrows = table.nrows  # 行数
    ncols = table.ncols  # 列数
    datamatrix = np.zeros((nrows, ncols))
    for i in range(nrows):
        rows = table.row_values(i)
        datamatrix[i,:] = rows
    return datamatrix

pathX = '113.xlsx'  #  113.xlsx 在当前文件夹下
x = excel2matrix(pathX)
print(x)
print(x.shape)

输出

[[0.01719892 0.86457238 0.01742387 ... 1. 1. 0.9999603 ]
[0.0319469 0.86909879 0.01730402 ... 0.99351703 0.99445369 0.99997023]
[0.02805216 0.87040528 0.01724861 ... 0.99051946 0.99251572 0.99993467]
...
[0.63507299 0.03643383 0.99306191 ... 0.03441377 0.01650907 0.00848835]
[0.64464586 0.05750134 0.99653096 ... 0.03317541 0.01337929 0.00424418]
[0.64765852 0.09031475 1. ... 0.03193705 0.01024951 0. ]]
 
(325, 126)

posted on 2021-06-09 19:47  雾恋过往  阅读(2086)  评论(0编辑  收藏  举报

Live2D