Я создал список с именем ingreso_datos , в котором я ввожу информацию, учтите, что при работе с циклами for в моих переменных я отображаю результат последнего списка, то есть элемента 15. Объяснение изображение здесь: изображение , здесь я оставляю Excel: ejercicio_e c
Я создал массив нулей 36x36, плюс я создал еще один список с именем counters , который сообщает мне строки и столбцы, которым я должен заменить нули моего ранее созданного массива.
Значения, которые я собираюсь заменить в матрице нулей, задаются другой матрицей , эта матрица 6x6, называемая la_matriz .
Моя проблема заключается в том, что когда я делаю это с помощью для l oop, я получаю AttributeError: объект 'list' не имеет атрибута 'intertuples' .
На этой неделе я изучаю манипуляции с матрицами в Python, поэтому я очень ценю отзывы на эти вопросы, с уважением.
И извините, мой Engli sh, Это это не мой родной язык.
import pandas as pd
import numpy as np
base = pd.ExcelFile('ejercicio_ec.xlsx')
ingreso_datos = [[ 1, 'W', 28, 29, 30, 19, 20, 21, 0, 0, 0, 2.5, 'xh24', 10],
[ 2, 'W', 31, 32, 33, 22, 23, 24, 4.5, 0, 4.5, 2.5, 'xh24', 10],
[ 3, 'W', 34, 35, 36, 25, 26, 27, 9.5, 0, 9.5, 2.5, 'xh24', 10],
[ 4, 'W', 19, 20, 21, 10, 11, 12, 0, 2.5, 0, 5, 'xh24', 10],
[ 5, 'W', 22, 23, 24, 13, 14, 15, 4.5, 2.5, 4.5, 5, 'xh24', 10],
[ 6, 'W', 25, 26, 27, 6, 17, 18, 9.5, 2.5, 9.5, 5, 'xh24', 10],
[ 7, 'W', 10, 11, 12, 1, 2, 3, 0, 5, 0, 7.5, 'xh24', 10],
[ 8, 'W', 13, 14, 15, 4, 5, 6, 4.5, 5, 4.5, 7.5, 'xh24', 10],
[ 9, 'W', 16, 17, 18, 7, 8, 9, 9.5, 5, 9.5, 7.5, 'xh24', 10],
[10, 'X', 19, 20, 21, 22, 23, 24, 0, 2.5, 4.5, 2.5, 'xh24', 10],
[11, 'X', 22, 23, 24, 25, 26, 27, 4.5, 2.5, 9.5, 2.5, 'xh24', 10],
[12, 'X', 10, 11, 12, 13, 14, 15, 0, 5, 4.5, 5, 'xh24', 10],
[13, 'X', 13, 14, 15, 16, 17, 18, 4.5, 5, 9.5, 5, 'xh24', 10],
[14, 'X', 1, 2, 3, 4, 5, 6, 0, 7.5, 4.5, 7.5, 'xh24', 10],
[15, 'X', 4, 5, 6, 7, 8, 9, 4.5, 7.5, 9.5, 7.5, 'xh24', 10]]
propies = []
for i in range(len(ingreso_datos)):
if ingreso_datos[i][12] == 'xh24':
Data = base.parse('xh24')
for j in range(len(Data)):
if ingreso_datos[i][13] == Data.values[j][0]:
propies.append([Data.values[j][1], Data.values[j][2], Data.values[j][3]])
counters = []
for i in range(len(ingreso_datos)):
b = propies [i][0]
c = propies [i][1]
d = propies [i][2]
e = np.sqrt((ingreso_datos[i][10]-ingreso_datos[i][8])**2+(ingreso_datos[i][11]-ingreso_datos[i][9])**2)
La_matriz = np.array([[ b*c/e, 0, 0, -b*c/e, 0, 0],
[ 0, c*d/e**3, c*d/e**2, 0, c*d/e**3, c*d/e**2],
[ 0, c*d/e**2, c*d/e, 0, c*d/e**2, c*d/e],
[-b*c/e, 0, 0, b*c/e, 0, 0],
[ 0, c*d/e**3, c*d/e**2, 0, c*d/e**3, c*d/e**2],
[ 0, c*d/e**2, c*d/e, 0, c*d/e**2, c*d/e]])
# Matrix de zeros
ceros_grande = np.zeros((36,36))
counters.append([ingreso_datos[i][2], ingreso_datos[i][3], ingreso_datos[i][4],
ingreso_datos[i][5], ingreso_datos[i][6], ingreso_datos[i][7]])
for _, i1, i2, i3, j1, j2, j3 in counters():
ceros_grande[:, [i1,i2,i3,j1,j2,j3]] = La_matriz