Windows 上的 Python 3.5。 我在 Excel 中有一个 9x2 范围,我想将其读入 Python 中的数组中。
Excel 范围数据:
2 2
0.833333333 1
2.166666667 2
0 0
1 0
1 1
1.5 1.166666667
0.833 1.333
1.667 1.333
Python 代码:
import openpyxl
import numpy
# physicians
physicians = ['DrA', 'DrB']
# activities
activities = ['Admin1', 'Frac2', 'Spec3', 'Fleb4', 'Latr5', 'Endo6', 'Surg7', 'Surg8',
'Noth9', 'Annl10']
wb = openpyxl.load_workbook('m_a_j2pasted.xlsx')
type = wb
sheet = wb.get_sheet_by_name('sheet_mean_a_j')
M = [[sheet.cell(row=rows, column=cols).value for rows in range(1, len(activities))] for cols in range(1, len(physicians))]
M = numpy.array(M)
numpy.transpose(M)
print(M)
print(M)
out:
[[ 2. ]
[ 0.83333333]
[ 2.16666667]
[ 0. ]
[ 0.5 ]
[ 0.5 ]
[ 1.5 ]
[ 0.83333333]
[ 1.66666667]]
现在我如何获得第二列?我也尝试过这种方法:
M = []
for rows in range(1, len(activities)):
values = []
for cols in range(1, len(physicians)):
values.append(sheet.cell(row=rows, column=cols).value)
M.append(values)
同样的事情。
谢谢
最佳答案
您正在尝试索引未初始化的数组,首先对其进行初始化
w、h = 8、5。 矩阵 = [[0 for x in range(w)] for y in range(h)] #initializing
Matrix[0][6] = 3 #通过循环输入一个或多个值
print Matrix[0][6] #打印一个或多个元素
在你的情况下初始化 DrA、DrB = 50,50。 医生 = ['DrA', 'DrB']
阅读Python中的列表理解
关于arrays - 从 Excel 数据填充二维数组的 Python 列表理解仅给出 1 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39201474/