【问题标题】:Python - NumPy array_split adds a dminesionPython - NumPy array_split 添加一个维度
【发布时间】:2017-06-10 00:12:03
【问题描述】:

我正在尝试将数据集拆分为 3 个部分,但我遇到了问题,因为矩阵没有得到我想要的维度。

首先,我知道这种方法非常不合适,因为它将数据集分成 3 个相等的部分,应该是这样的。 其次,我现在主要关心的是numpy.array_split() 正在向数组添加维度。

代码:

train, test, cv = np.array_split(data[np.random.shuffle(data)], 3, axis = 1) 

train_inputs = train[:,: -1]
test_inputs = test[:,: -1]
cv_inputs = cv[:,: -1]

train_outputs = train[:, -1]
test_outputs = test[:, -1]
cv_outputs = cv[:, -1]

print "Train Inputs Matrix" + str(train_inputs.shape) + "\n"
print "Test inputs Matrix " + str(test_inputs.shape) + "\n"
print "CV Inputs Matrix " + str(cv_inputs.shape) + "\n"
print "Train Outputs Matrix " + str(train_outputs.shape) + "\n"
print "Test Outputs Matrix " + str(test_outputs.shape) + "\n" 
print "CV Outputs Matrix " + str(cv_outputs.shape) + "\n"
print train_inputs.ndim, train_outputs.ndim, test_inputs.ndim,     test_outputs.ndim, cv_inputs.ndim, cv_outputs.ndim

所有这些,将输出到控制台如下:

Train Inputs Matrix(1, 94935, 31)

Test inputs Matrix (1, 94935, 31)

CV Inputs Matrix (1, 94934, 31)

Train Outputs Matrix (1, 31)

Test Outputs Matrix (1, 31)

CV Outputs Matrix (1, 31)

3 2 3 2 3 2

目标是将数据集拆分为三个独立的数组,保持原来的形状,(x, 31) 以供以后计算。然后输入将删除最后一列,输出将仅保留最后一列。

奇怪的行为是array_split 正在向较新的数组添加一个维度。尽管如此,输入和输出都是错误的,因为输出只保留第一行而不是最后一列。

提前致谢。

【问题讨论】:

  • data的形状是什么?
  • 这就是问题所在。原始集是一个 283034x31 数组。不是 3 维数组
  • data[np.random.shuffle(data)] 的语法很奇怪。 np.random.shuffle(data) 返回 None 但将 data 改组到位。 data[None] 就是 data。在前一行进行洗牌会更清楚。编辑:实际上,data[None] 是添加额外维度的原因,如下 hpaulj 所述。
  • 感谢您的提示!

标签: python arrays numpy multidimensional-array split


【解决方案1】:

问题在于洗牌:

In [661]: data = np.arange(12).reshape(3,4)
In [662]: np.random.shuffle(data)
In [663]: data[np.random.shuffle(data)].shape
Out[663]: (1, 3, 4)

shuffle 在原地运行,并返回None

data[None]

在开头添加一个新维度。所以split 得到一个 (1,283034,31),它在 axis=1 上分成 3 种方式(按照指示)。

【讨论】:

  • 感谢您的提示。我将测试改组这一部分。我会在测试时标记为已解决,如果这能解决问题。再次感谢!
  • 想说这停止向新矩阵添加维度。现在要解决一个新问题:'D
猜你喜欢
  • 2020-11-13
  • 2015-08-04
  • 2017-12-06
  • 2017-01-18
  • 2017-06-10
  • 2020-06-24
  • 2017-08-19
  • 2015-04-07
  • 2016-04-05
相关资源
最近更新 更多