2015-05-13 3 views
3

У меня есть 2 файла csv с 16 столбцами и 146 строк. Я пытаюсь сделать следующее (Это не фактические данные):манипуляция с массивом python numpy

a = [1, 2, 3, 4, 5, 6] 
b = [10, 20, 30, 40, 50, 60] 
final output of the script intended: 
x = [ 11, 22, 33, 22, 22.5, 33] # basically the last half of the array needs to be divided by 2 

Я опробован происходит некорректно код:

import csv 
import numpy as np 
import sys  
data = np.genfromtxt('./test1.csv', dtype=float, delimiter=',') 
data_sys = np.genfromtxt('.test2.csv', dtype=float, delimiter=',') 
z = np.add (data, data_sys) 
np.savetxt("new_before_avg.csv", z, delimiter= ',') 

z[:,8:15] = z[:,8:15]/2 

np.savetxt("new_after_avg.csv"], z, delimiter= ",") 

Проблема в том, что я вижу конечный результат как ожидаемый, за исключением последнего столбца (, столбец 15). Он просто добавлен, не разделился на 2.

Я думал, что мое индексирование было правильным. Пожалуйста помоги.

+0

если есть 16 колонок, почему вы отрезаете 8:15? Помните, что кусочки python идут вверх по индексу до конца! i.e 8:16 -> 8,9,10,11,12,13,14,15 – paddyg

ответ

3

z[:,8:15] индексы до, но не включая последняя колонка (16-й, с индексом z[:,15]).

Использование z[:, 8:] или z[:,8:16]

+0

Большое спасибо xnx. – user3285014

Смежные вопросы