2017-02-22 60 views
1

У меня есть CSV «TEMP2», полный данных, представленных ниже.Как скомбинировать две матрицы python numpy

1376460059,4,33.29,33.23,33.23,33.29,33.23,33.29,33.29,33.29,33.33,33.29,33.33,33.29,33.33,33.33,33.37,33.33,33.33,33.33,33.33,33.37,33.37,33.37,33.37 

Моя работа до сих пор это:

import csv 
import numpy as np 
import datetime 

data = np.genfromtxt('TEMP2.csv', delimiter=',')[1:] 

limite=data[0] 
COLUMN_NUM = int(limite) 

data = np.genfromtxt('TEMP2.csv', delimiter=',')[2:] 



for x in range(0, len(data)): 
    tiempo = (((x*1.)/COLUMN_NUM) + 1376460059) 
    tiempo = np.array(tiempo) 
    print tiempo 

results = [] 
for i in range(0, len(data)): 
    tiempo = (((x*1.)/COLUMN_NUM) + 1376460059) 
    results.append(tiempo) 
    print np.hstack(results) 


if data.shape[0] % 4 == 0: 
    print data.reshape((-1, 4)) 

else: 
    data = np.pad(data, (0, COLUMN_NUM - len(data) % COLUMN_NUM), 'constant') 
    print (data) 

    print data.reshape((-1, COLUMN_NUM)) 

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

for x in range(0, len(data)): 
     tiempo = (((x*1.)/COLUMN_NUM) + 1376460059) 
     tiempo = np.array(tiempo) 
     print tiempo 

Мой вопрос, как я могу установить это приводит в матрицу ищет что-то вроде этого:

[[1376460059.0 1376460059.25 1376460059.5 1376460059.75] 
[1376460060.0 1376460060.25 1376460060.5 1376460060.75] 
[1376460061.0 1376460061.25 1376460061.5 1376460061.75] 
[. . . . . . . . . . . . . . . . . . . and so on . .] 
[1376460063.75 1376460064.0 1376460064.25 1376460064.5]] 

Кроме того, когда я его, можно объединить его с моей другой матрицы к получите такой результат:

[[33.29  33.23   33.23  33.29] 
    [1376460059.0 1376460059.25 1376460059.5 1376460059.75] 
    [33.23  33.29   33.29  33.29] 
    [1376460060.0 1376460060.25 1376460060.5 1376460060.75] 
    [33.33  33.29   33.33  33.29] 
    [1376460061.0 1376460061.25 1376460061.5 1376460061.75] 
    [ and so on. . . . .. . . . . .. . . . . . . .]] 

Я действительно спрашиваю об этом, потому что у меня есть другой источник помощи. Но отчаянно знать. Я искал, но я не получаю никуда. Благодарю.

ответ

0

для первой части вашего вопроса, вам просто нужно создать вкладку перед первой итерацией.

res = [] 
for x in range(0, len(data)): 
    tiempo = (((x*1.)/COLUMN_NUM) + 1376460059) 
    tiempo = np.array(tiempo) 
    print tiempo 
    res.append(tiempo) 

для второй части вашего вопроса, чтобы объединить две матрицы, вы можете использовать numpy.concatenate:

import numpy as np 

np.concatenate((A, B)) 
matrix([[ 1., 2.], 
     [ 3., 4.], 
     [ 5., 6.]]) 

Я не проверить свой код, так что я надеюсь, что это поможет вам

у меня есть немного поработать над кодом, и теперь у меня есть, что:

import csv 
import numpy as np 
import datetime 

data = np.genfromtxt('TEMP2.csv', delimiter=',')[1:] 

limite=data[0] 
COLUMN_NUM = int(limite) 

data = np.genfromtxt('TEMP2.csv', delimiter=',')[2:] 


results = np.zeros(shape=(len(data))) 

for x in range(0, len(data)): 
    tiempo = (((x*1.)/COLUMN_NUM) + 1376460059) 
    results[x] = tiempo 


if data.shape[0] % 4 == 0: 
    print(data.reshape((-1, 4))) 

else: 
    data = np.pad(data, (0, COLUMN_NUM - len(data) % COLUMN_NUM), 'constant') 


if results.shape[0] % 4 == 0: 
    print(results.reshape((-1, 4))) 

else: 
    results = np.pad(results, (0, COLUMN_NUM - len(results) % COLUMN_NUM), 
        'constant') 

data = data.reshape((-1, COLUMN_NUM)) 
results = results.reshape((-1, COLUMN_NUM)) 


final_matrix = np.concatenate((data, results)) 
final_matrix2 = [] 
for i in range(len(data)): 
    final_matrix2.append(list(data[i])) 
    final_matrix2.append(list(results[i])) 


print(final_matrix) 
print(final_matrix2) 

и у меня есть этот результат

[ 3.32900000e+01 3.32300000e+01 3.32300000e+01 3.32900000e+01] 
[ 3.32300000e+01 3.32900000e+01 3.32900000e+01 3.32900000e+01] 
[ 3.33300000e+01 3.32900000e+01 3.33300000e+01 3.32900000e+01] 
[ 3.33300000e+01 3.33300000e+01 3.33700000e+01 3.33300000e+01] 
[ 3.33300000e+01 3.33300000e+01 3.33300000e+01 3.33700000e+01] 
[ 3.33700000e+01 3.33700000e+01 3.33700000e+01 0.00000000e+00] 
[ 1.37646006e+09 1.37646006e+09 1.37646006e+09 1.37646006e+09] 
[ 1.37646006e+09 1.37646006e+09 1.37646006e+09 1.37646006e+09] 
[ 1.37646006e+09 1.37646006e+09 1.37646006e+09 1.37646006e+09] 
[ 1.37646006e+09 1.37646006e+09 1.37646006e+09 1.37646006e+09] 
[ 1.37646006e+09 1.37646006e+09 1.37646006e+09 1.37646006e+09] 
[ 1.37646006e+09 1.37646006e+09 1.37646006e+09 0.00000000e+00]] 
[[33.289999999999999, 33.229999999999997, 33.229999999999997, 33.289999999999999], [1376460059.0, 1376460059.25, 1376460059.5, 1376460059.75], [33.229999999999997, 33.289999999999999, 33.289999999999999, 33.289999999999999], [1376460060.0, 1376460060.25, 1376460060.5, 1376460060.75], [33.329999999999998, 33.289999999999999, 33.329999999999998, 33.289999999999999], [1376460061.0, 1376460061.25, 1376460061.5, 1376460061.75], [33.329999999999998, 33.329999999999998, 33.369999999999997, 33.329999999999998], [1376460062.0, 1376460062.25, 1376460062.5, 1376460062.75], [33.329999999999998, 33.329999999999998, 33.329999999999998, 33.369999999999997], [1376460063.0, 1376460063.25, 1376460063.5, 1376460063.75], [33.369999999999997, 33.369999999999997, 33.369999999999997, 0.0], [1376460064.0, 1376460064.25, 1376460064.5, 0.0]] 
+0

Спасибо вам за asnwear, однако, когда я, как предложил я получу: нет ни ...... у вас есть какие-либо идеи, почему? –

+0

Я использую python 3.6 и pyCharm для работы –