Соотнесите трехмерный массив в n раз 2d строки в Python - PullRequest
0 голосов
/ 12 декабря 2018

Было просто интересно, есть ли простой способ сгладить двумерный массив в корреляционные строки.Итак, вот пример: у меня есть n чисел двумерного массива как таковых:

enter image description here

Так, скажем, здесь пример 3d (6x10x n) Как можноя сопоставляю a1: a10, b1: b10 до f1: f10, поэтому назовите их как a1, a2, a3 .... f8, f9, f10 и сделайте это для n строк.N рядов из 60 объектов (a1, a2, a3 ...).

Ответ для n строк: enter image description here

import numpy as np 
from numpy import array
from numpy import vstack
from numpy import hstack
import scipy.io
mat = scipy.io.loadmat('x.mat')

Мне удалось загрузить только файл .mat в python.Есть ли функции, которые я могу использовать в Python?Спасибо за любую помощь.

Кевин

1 Ответ

0 голосов
/ 12 декабря 2018

Вы можете сделать что-то вроде этого:

import numpy as np
import pandas as pd

Array = np.array(2d_array)
columns = Array[0, 1:]
rows = Array[1:, 0:1]
values = Array[1:,1:]

results = dict()
for row, column, value in np.nditer((rows, columns, values)):
    feature = "".join(map(str, [row, column]))
    if feature not in results:
       results[feature] = []
    results[feature].append(value)
df = pd.DataFrame.from_dict(results)
...