训练稀疏向量

2024-04-26 03:34:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的训练数据:

x_train = np.random.randint(100, size=(1000, 25))

每行是一个样本,因此我们有1000个样本。你知道吗

现在我需要有训练数据,这样对于每个样本/行,25个元素中最多可以有3个非零元素。你知道吗

你们能建议我如何实施吗?谢谢!你知道吗


Tags: 数据元素sizenptrainrandom建议样本
1条回答
网友
1楼 · 发布于 2024-04-26 03:34:01

我假设您希望将大部分数据转换为零,只是每行保留0到3个非零元素(随机)。如果是这种情况,一种可能的方法如下。你知道吗

代码

import numpy as np
max_ = 3
nrows = 1000
ncols = 25

np.random.seed(7)

X = np.zeros((nrows,ncols))

data = np.random.randint(100, size=(nrows, ncols))

# number of max non-zeros to be generated for each column
vmax = np.random.randint(low=0, high=4, size=(nrows,))

for i in range(nrows):

  if vmax[i]>0:
      #index for setting non-zeros
      col = np.random.randint(low=0, high=ncols, size=(1,vmax[i]))

      #set non-zeros elements
      X[i][col] = data[i][col]

print(X)

输出

[[ 0. 68. 25. ...  0.  0.  0.]
 [ 0.  0.  0. ...  0.  0.  0.]
 [ 0.  0.  0. ...  0.  0.  0.]
 ...
 [ 0.  0.  0. ...  0.  0.  0.]
 [88.  0.  0. ...  0.  0.  0.]
 [ 0.  0.  0. ...  0.  0.  0.]]

相关问题 更多 >