numpy 我们是如何打乱数据和标签的?

e5nszbig  于 2023-06-23  发布在  其他
关注(0)|答案(2)|浏览(135)

问候软件工程师,请大家帮助我。我很困惑,在这个代码中数据和标签是如何混洗的(我所指的具体代码在第二张图片中)?
enter image description hereenter image description here
我很好奇,在这段代码中,数据和标签是如何混洗的?我的意思是,看看它基本上说的是什么(假设我们在数据中有10个元素):

shuffle_indices = array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6]) # random
data = data[array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])]
labels = labels[array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])]

请解释这是如何工作的?????

krcsximq

krcsximq1#

random.permutation生成一个“shuffled”数字列表,可以用作数组的索引。然后使用该索引List对数据进行重新排序。请参阅下面的基本示例,并注意更改后的数据顺序如何遵循索引(记住Python是基于0索引的,因此第一个数据元素a是索引0)。可以定义seed,以便每次产生相同的 Shuffle 顺序。

import numpy as np

idx = np.random.permutation(5)

print(idx)

data = np.array(['a', 'b', 'c', 'd', 'e'])
new_data = data[idx]
print(new_data)

显示:

[4 0 1 2 3]
['e' 'a' 'b' 'c' 'd']
eqqqjvef

eqqqjvef2#

我假设shuffle_indices、data和labels是numpy数组。
Numpy数组可以使用另一个数组进行索引。例如:

x = np.array([2, 1, 0])
y = np.array(['a', 'b', 'c'])
z = y[x]

print(z)  # ['c', 'b', 'a']

在这种情况下,z是y的倒数( Shuffle 的特殊情况)。

相关问题