我有以下代码来创建一个大集合的随机子集(大小示例):
def sampling(input_set):
tmp = random.sample(input_set, examples)
return tmp
问题是我的输入是一个大矩阵,所以input_set.shape =(n,m)。但是,sampling(input_set)是一个列表,而我希望它是size =(examples,m)的子矩阵,而不是大小为m的向量的examples
长度列表。
我修改了我的代码来执行此操作:
def sampling(input_set):
tmp = random.sample(input_set, examples)
sample = input_set[0:examples]
for i in range(examples):
sample[i] = tmp[i]
return sample
这样可行,但有没有更优雅/更好的方法来完成我想要做的事情?
答案 0 :(得分:1)
使用numpy创建一个n x m矩阵(假设input_set是一个列表)
var dict: [String: AnyObject] = [:]
dict = [
"test": test,
"test1": test,
"test2": test,
"test4": test
]
答案 1 :(得分:1)
好的,如果我理解正确的问题你只想放弃最后几卷(n - k),那么:
sample = input_matrix [:k - n]
必须为你做好工作。
答案 2 :(得分:0)
不知道是否还有兴趣,但也许你会这样做:
#select a random 6x6 matrix with items -10 / 10
import numpy as np
mat = np.random.randint(-10,10,(6,6))
print (mat)
#select a random int between 0 and 5
startIdx = np.random.randint(0,5)
print(startIdx)
#extracy submatrix (will be less than 3x3 id the index is out of bounds)
print(mat[startIdx:startIdx+3,startIdx:startIdx+3])