Я пытаюсь создать двумерный массив, а затем извлечь данные из массива и вставить данные в определенную c точку массива. Ниже приведен код, который я написал для создания 2D-массива:
from array import *
import math, random
TDArrayBuilder = []
TDArray = []
for yrunner in range(3):
for xrunner in range(3):
TDArrayBuilder.append(random.randint(0,1))
TDArray.insert(yrunner, [TDArrayBuilder])
TDArrayBuilder = []
print(TDArray[0][2])
Ошибка, из-за которой он выплевывает, выглядит следующим образом:
Traceback (последний вызов был последним):
Файл "C: / TestFile.py", строка 13, в
print (TDArray [0] [2])
IndexError: индекс списка вне диапазона
Я также написал некоторый код, предшествующий этому, относительно поиска и печати минимальных значений и максимальных значений в двумерном массиве, он легко мог печатать значение в указанном месте. Я почти уверен, что это только потому, что я использовал numpy, но я все еще хотел бы сделать это без numpy.
Пример кода:
import numpy as np #required Import
import math
#preset matrix data
location = [] #Used for locations in searching
arr = np.array([[11, 12, 13],[14, 15, 16],[17, 15, 11],[12, 14, 15]]) #Data matrix
result = np.where(arr == (np.amax(arr))) #Find the position(s) of the lowest data or the highest data, change the np.amax to npamin for max or min respectively
listofCoordinates = list(zip(result[0], result[1])) #Removes unnecessary stuff from the list
for cord in listofCoordinates: #takes the coordinate data out, individually
for char in cord: #loop used to separate the characters in the coordinate data
location.append(char) #Stores these characters in a locator array
length = (len(location)) #Takes the length of location and stores it
length = int(math.floor((length / 2))) #Floors out the length / 2, and changes it to an int instead of a float
for printer in range(length): #For loop to iterate over the location list
ycoord = location[(printer*2)] #Finds the row, or y coord, of the variable
xcoord = location[((printer*2)+1)] #Finds the column, or x coord of the variable
print(arr[ycoord][xcoord]) #Prints the data, specific to the location of the variables
Резюме:
Я хотел бы иметь возможность извлекать данные из двумерного массива, и я не знаю, как это сделать (относительно первого кода). Я сделал файл, используя numpy, и он работал, однако, я бы предпочел не использовать его для этой операции с текущей. что-нибудь поможет