#python #numpy #for-loop #while-loop #scatter-plot
#python #numpy #for-цикл #цикл while #точечная диаграмма
Вопрос:
У меня есть ndarray с формой (13, 2236, 1866). Я хотел бы создать точечную диаграмму для каждого измерения со всеми другими измерениями, например, dim1 dim2, dim1 dim3, dim1 dim4 … sdim2 dim3, dom2 4…….. пока я не получу точечные диаграммы для всех возможных вариантов.
Прямо сейчас у меня есть сценарии, которые используют цикл while, но этот курс не находит всех подходящих возможностей. #array= ndarray
d=0
while d 1<13:
x=array[d].reshape(-1)
y=array[d 1].reshape(-1)
plt.figure(figsize=(8,6))
plt.scatter(x, y, s=5, linewidth=0)
plt.scatter(x, y,s=5, linewidth=0)
plt.xlabel('B{band1}'.format(band1= str(d 1)))
plt.ylabel('B{band2}'.format(band2 = str(d 2)))
plt.show()
d=d 1
здесь я получаю возможности B1 B2, B2 B3, B3 B4…
Я также попытался создать список измерений и использовать цикл for:
dims=np.arange(0,13)
а затем «для d в dims» для запуска цикла while, но это также не дает всех возможностей.
Моя конечная цель: создать все возможные точечные диаграммы для всех измерений
Комментарии:
1. что такое массив в вашем коде?
2. @JacksonPro arra — это ndarray. я добавлю это в исходное сообщение
Ответ №1:
в конце я использовал функцию отсюда:
dims=np.arange(0,13)
def tessa(source):
result = []
for p1 in range(len(source)):
for p2 in range(p1 1,len(source)):
result.append([source[p1],source[p2]])
return result
pairings = tessa(dims)
print("%d pairings" % len(pairings))
for i in pairings:
xd=i[0]
xy=i[1]
x=array[xd].reshape(-1)
y=array[xy].reshape(-1)
plt.figure(figsize=(8,6))
plt.scatter(x, y, s=5, linewidth=0)
plt.scatter(x, y,s=5, linewidth=0)
plt.xlabel('B{band1}'.format(band1= str(xd 1)))
plt.ylabel('B{band2}'.format(band2 = str(xy 1)))
plt.show()