相关疑难解决方法(0)

如何删除numpy数组中的特定元素

如何从numpy数组中删除一些特定元素?说我有

import numpy as np

a = np.array([1,2,3,4,5,6,7,8,9])
Run Code Online (Sandbox Code Playgroud)

然后我想删除3,4,7a.我所知道的是值(index=[2,3,6])的索引.

python arrays numpy

180
推荐指数
7
解决办法
39万
查看次数

删除矩阵子视图中的第一个元素

我有这样的数据集:

[[0,1],
 [0,2],
 [0,3],
 [0,4],
 [1,5],
 [1,6],
 [1,7],
 [2,8],
 [2,9]]
Run Code Online (Sandbox Code Playgroud)

我需要删除第一列定义的数据的每个子视图的第一个元素.所以首先我得到第一列中有0的所有元素,并删除第一行:[0,1].然后我在第一列中得到1的元素并删除第一行[1,5],下一步我删除[2,8],依此类推.最后,我想有一个像这样的数据集:

[[0,2],
 [0,3],
 [0,4],
 [1,6],
 [1,7],
 [2,9]]
Run Code Online (Sandbox Code Playgroud)

编辑:这可以在numpy中完成吗?我的数据集非常大,因此所有元素的循环至少需要4分钟才能完成.

python numpy

6
推荐指数
1
解决办法
479
查看次数

从numpy数组中删除选定索引处的行

在我的数据集中,我接近200行,但是对于最小的工作,例如,让我们假设以下数组:

arr = np.array([[1,2,3,4], [5,6,7,8], 
               [9,10,11,12], [13,14,15,16], 
               [17,18,19,20], [21,22,23,24]])
Run Code Online (Sandbox Code Playgroud)

我可以对3行进行随机抽样,如下所示:

indexes = np.random.choice(np.arange(arr.shape[0]), int(arr.shape[0]/2), replace=False)
Run Code Online (Sandbox Code Playgroud)

使用这些索引,我可以选择我的测试用例如下:

testing = arr[indexes]
Run Code Online (Sandbox Code Playgroud)

我想删除这些索引处的行,我可以将剩余的元素用于我的训练集.

这里的帖子看来,似乎training = np.delete(arr, indexes)应该这样做.但我得到了1d阵列.

我也试过的建议在这里使用training = arr[indexes.astype(np.bool)],但它并没有给出清晰的分离.我在训练和测试集中都得到了元素[5,6,7,8].

training = arr[indexes.astype(np.bool)]

testing
Out[101]: 
array([[13, 14, 15, 16],
       [ 5,  6,  7,  8],
       [17, 18, 19, 20]])

training
Out[102]: 
array([[ 1,  2,  3,  4],
       [ 5,  6,  7,  8],
       [ 9, 10, 11, 12]])
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?谢谢.

python arrays numpy

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

numpy ×3

python ×3

arrays ×2