создание точечной диаграммы для каждого из двух измерений для ndarray

#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()