Трудно понять вашу проблему по предоставленной вами информации. Пожалуйста, добавьте больше информации, чтобы она была более понятной. Я не могу поставить это как комментарий, потому что мне не хватает репутации, извините.
Так что я выложу ответ рядом. Как я понимаю ваш вопрос, у вас есть массив (9000 x 12), где 12 столбцов являются переменными, а 9000 строк являются наблюдениями? И вы хотите разделить данные на 2 класса и построить их на одном графике с другим цветом / linetyle / etc.?
Если вы хотите назначить категории («переменные классификации») для вашего массива, pandas
будет оптимальным модулем для этого. Если вы хотите сделать это исключительно с NumPy, я бы использовал что-то вроде этого:
import numpy as np
import matplotlib.pyplot as plt
# Sample data
arr = np.random.randn(9000, 12)
# Split data
class_a = arr[:3001, :]
class_b = arr[3001:, :]
# Plot both classes in same plot
fig, ax = plt.subplots(1, 1)
ax.plot(class_a[:, 0], class_a[:, 1]) # Choose columns you want to plot
ax.plot(class_b[:, 0], class_b[:, 1])
Если вы используете 2 отдельных вызова plt.plot
, matplotlib автоматически использует новый цвет.
Подход с pandas
и seaborn
расширил бы переменную arr
:
import pandas as pd
import seaborn as sns
df = pd.DataFrame(arr)
df['Class'] = 'A'
df.Class[3001:] = 'B' # Hacky solution, but got no time to elaborate
sns.lineplot(data=df, x=0, y=1, hue='Class')