怎么把一个数组拆分为两个啊,如a=1,2,3,4,5,6,7拆分后为a=1,2,7b=3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把一个数组拆分为两个啊,如a=1,2,3,4,5,6,7拆分后为a=1,2,7b=3相关的知识,希望对你有一定的参考价值。
怎么把一个数组拆分为两个啊,如a=1,2,3,4,5,6,7拆分后为a=1,2,7b=3,4,5,6
既然要把一个数组拆为两个,那总得有个拆分规则吧!你要求什么样的拆分规则呢?根据你提供的那两个拆分后的数组可以这样理解,把初始数组的第2、3、4位拿出来作为另一个数组,剩下的继续赋值给原数组。
int[] a = 1,2,3,4,5,6,7;
int[] b = a[2],a[3],a[4];
int[] a = a[0],a[1],a[6]追问
嗯嗯,就是(⊙o⊙)哇
拿出原数组中的连续几个数,给另一个数组,原数组剩余部分赋值给原数组
是用c++写
追答c++我了解的不多,不过可以给你提供一个解决的思路:
你可以遍历取出初始数组中的所有数,并在遍历时对每次的取值进行判断和操作。具体思路如下:
假设初始数组为a,其中有i个数。
在遍历的每次取值时,把当前所取到的这个数tempi放在新建数组b的第一个位置
然后分别对tempi做tempi+1和tempi-1
再把这个tempi+1和tempi-1分别与遍历时下一次取出的数temp(i+1)做比较,只要有一个等于temp(i+1),则把这个temp(i+1)放入数组b的下一个位置。
最后再把数组a中的tempi和temp(i+1)都删除掉
如此遍历下去,就可以分别得到数组a和数组b。
由于本人对c++不太熟悉,就不把代码给你敲出来了,免得出错误导大家,不过这个思路是肯定没问题的。
谢谢啦,我试试
参考技术A 什么数追问c++语言,整形数组
追答不记得了,好好翻书吧
追问书上没有…
参考技术B 为什么要拆开呢?追答傻逼,不会就别BB
将数据集拆分为两个非冗余 numpy 数组?
【中文标题】将数据集拆分为两个非冗余 numpy 数组?【英文标题】:Splitting dataset into two non-redundant numpy arrays? 【发布时间】:2019-07-01 01:33:26 【问题描述】:我有一个 numpy 数组“my_data”。我正在尝试随机拆分此数据集。但是,当我使用以下代码执行此操作时,我得到一个“train”数组和一个“test”数组。训练数组和测试数组在列中有一些行。
training_idx = np.random.randint(my_data.shape[0], size=split_size)
test_idx = np.random.randint(my_data.shape[0], size=len(my_data)-split_size)
train, test = my_data[training_idx,:], my_data[test_idx,:]
我的意图是首先随机找到训练数组,然后在 my_data 中剩下的任何行不在训练数组中,作为测试数组的一部分。
numpy 有没有办法做到这一点? (我避免使用 sklearn 来拆分我的数据)
我在这里参考了这篇文章,以获取我的数据集。 How to split/partition a dataset into training and test datasets for, e.g., cross validation?
如果我按照这篇文章的逻辑进行编码,我最终会得到训练和测试数据集,其中训练和测试中有一些冗余行。我打算制作没有共同行的训练和测试数据集。
【问题讨论】:
尝试随机排列(使用randint
)索引,然后将该排列分成两部分。一个用于训练,另一个用于测试。
【参考方案1】:
按照this answer你可以这样做:
train_idx = np.random.randint(my_data.shape[0], size=split_size)
mask = np.ones_like(my_data, dtype=bool)
mask[train_idx] = False
train, test = my_data[~mask], my_data[mask]
不过,正如 Poojan 建议的那样,一种更自然的方法是对数据的排列进行切片。
permuted = np.random.permutation(my_data)
train, test = permuted[:split_size], permuted[split_size:]
【讨论】:
以上是关于怎么把一个数组拆分为两个啊,如a=1,2,3,4,5,6,7拆分后为a=1,2,7b=3的主要内容,如果未能解决你的问题,请参考以下文章