随机地用python中的其他行替换行

时间:2017-08-18 17:14:39

标签: python python-3.x numpy

首先,它从文件中读取数据并进行转置。这里一切都很好。

接下来,它生成两个随机样本r1和r2。这里一切都很好。

最后,它生成一个与数据形状相同的矩阵,并用于循环同时循环r1和r2,然后用数据[j,:] + data [i,:]替换行j。 (使用print(sum(data [j,:] + data [i,:]),sum(r_data [j,:]))来检查它是否有效。到目前为止,一切都很好。

但最后,当我检查r_data时,所有元素都是0.我不知道为什么,我犯了什么错误?感谢您的帮助!!!

PS,我尝试用data = np.ones((n,k))替换数据,并且它有效。我真的不知道这个bug是如何发生的。它只在我从文件中读取数据时才会发生。

import numpy as np

data = np.loadtxt("nonames.txt")
data = np.transpose(data)
n = len(data[:,0])
k = len(data[0,:])

# randomly merging samples
c =  np.arange(n)
r1 = np.random.choice(c, 500, replace=False)
r2 = np.random.choice(c, 500, replace=False)
r_data = np.zeros((n,k))
for i,j in zip(r1,r2):
    r_data[j,:] = data[j,:] + data[i,:]
    print(sum(data[j,:] + data[i,:]), sum(r_data[j,:]))

0 个答案:

没有答案