#python #arrays #python-2.7
#python #массивы #python-2.7
Вопрос:
N * N * N
Скажем, у меня есть куб размера N=8
. Каждое измерение куба дискретизируется до 1, так что я обозначил точки (0,0,0), (0,0,1)..(N,N,N)
. В каждой помеченной точке я хотел бы присвоить случайное значение и, таким образом, создать массив, который хранит значение в каждой вершине. Например val[0,0,0]=1, val[0,0,1]=1.2 val[0,1,0]=1.3
, …
Как мне написать код на python для достижения этого?
Комментарии:
1. Не могли бы вы, пожалуйста, обновить свой вопрос кодом, который вы пробовали до сих пор?
Ответ №1:
Вы имели в виду это:
import numpy as np
n = 5
val = np.empty((n, n, n)) # Create an 3d array full of 0's
val[0,0,0] = 11
val[0,0,1] = 33
print(val[0, 0])
array([ 11., 33., 0., 0., 0.])
Ответ №2:
Вы могли бы просто генерировать списки списков. Хотя это никоим образом не эффективно, это позволит вам получить доступ к вашему кубу, например val[0][0][0]
.
arr = [[[] for _ in range(8)] for _ in range(8)]
arr[0][0].append(1)
Ответ №3:
Для больших матриц изучите использование numpy
. Это проблема, для решения которой он предназначен