Python NumPy数组数据操作

3

我有两个包含16列和146行的csv文件。 我正在尝试进行以下操作(这不是真实数据):

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。
我认为我的索引是正确的。请帮忙看看。

如果有16列,为什么要切片8:15?记住Python的切片是在结束前上升索引!即8:16 -> 8,9,10,11,12,13,14,15。 - paddyg
1个回答

3

z[:,8:15] 索引的是最后一列(第16列,索引为 z[:,15])之前的所有列。

请使用 z[:, 8:] 或者 z[:,8:16]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接