Python - Como puedo sumar celdas adyacentes (vecinos) de una celda [ i ] [ j ] en una matriz??

 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido su posición en 5 puestos en Python (en relación al último mes)
Gráfica de Python

Como puedo sumar celdas adyacentes (vecinos) de una celda [ i ] [ j ] en una matriz??

Publicado por Patricio (7 intervenciones) el 25/05/2019 00:46:07
Hola, estoy tratando de sumar las celdas adyacentes una celda [ i ] [ j ] en una matriz pero no tengo idea de como realizar ese calculo. Tengo un archivo.txt de datos como matriz como aparece abajo. Por ejemplo, la suma de vecinos de [0][3] = 1 o [0][5] = 2, en esta matriz.
La cantidad de celdas adyacentas(vecinos) depende de donde este esa celda. Por lo que la cantidad de vecinos puede ir desde 0 a 8.

0,0,1,0,1,0,1,0,0,0,
0,0,1,0,1,1,0,0,1,0,
0,1,1,1,0,0,0,0,1,1,
1,1,1,0,1,1,1,0,1,1,
1,0,1,0,1,0,0,0,0,0,
0,0,0,0,0,1,0,0,0,1,
0,0,1,0,1,0,1,1,1,0,
0,0,1,1,1,0,1,1,1,1,

La matriz puede ser cualquiera por lo que debo leer la cantidad de filas y columnas que tiene la matriz.
Ahora como puedo sumar las celdas adyacentes a la celda en [ i ] [ j ]???
Como puedo leer este archivo y que me imprima en pantalla la matriz? Toy tratando de hacerlo con numpy.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como puedo sumar celdas adyacentes (vecinos) de una celda [ i ] [ j ] en una matriz??

Publicado por tincopasan (1082 intervenciones) el 26/05/2019 04:31:02
1)no entendí bien ni lo que planteas.
2)busca en google como abrir y leer archivos, es muy facil, pero ni lo has intentado acá.
3)cuando hagas esto ya tendrías una matriz, faltaría pasarla a numpy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import  numpy as np
lista=[ [0,0,1,0,1,0,1,0,0,0,],
[0,0,1,0,1,1,0,0,1,0],
[0,1,1,1,0,0,0,0,1,1,],
[1,1,1,0,1,1,1,0,1,1,],
[1,0,1,0,1,0,0,0,0,0,],
[0,0,0,0,0,1,0,0,0,1,],
[0,0,1,0,1,0,1,1,1,0,],
[0,0,1,1,1,0,1,1,1,1,]]
 
lista_np= np.array(lista)
print(lista_np.shape)   #con esto conoces filas y columnas
suma3=np.sum(lista_np[0,:3])       #los valores que pediste
suma5=np.sum(lista_np[0,:5])         #como en todos los arreglos simplemente indicas desde donde hasta donde
suma4=np.sum(lista_np[3,6:])        #lo mismo en otra fila   
print(suma3)
print(suma5)
print(suma6)

no te voy a hacer toda la tarea, simplemente te muestro una forma de hacerlo, ahora adaptalo a tus necesidades, pero es bastante simple.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar