gpt4 book ai didi

python - x=x[class_id] 在 NumPy 数组上使用时会做什么

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:49 25 4
gpt4 key购买 nike

我正在学习 Python 并解决机器学习问题。

class_ids=np.arange(self.x.shape[0])
np.random.shuffle(class_ids)
self.x=self.x[class_ids]

这是 NumPy 中的随机播放函数,但我无法理解 self.x=self.x[class_ids] 的含义。因为我认为它将数组的值赋予了一个变量。

最佳答案

这是一种非常复杂的方式来打乱 self.x 的第一个维度。例如:

>>> x = np.array([[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]])
>>> x
array([[1, 1],
[2, 2],
[3, 3],
[4, 4],
[5, 5]])

然后使用提到的方法

>>> class_ids=np.arange(x.shape[0])  # create an array [0, 1, 2, 3, 4]
>>> np.random.shuffle(class_ids) # shuffle the array
>>> x[class_ids] # use integer array indexing to shuffle x
array([[5, 5],
[3, 3],
[1, 1],
[4, 4],
[2, 2]])

请注意,只需使用 np.random.shuffle 即可实现相同的效果因为文档字符串明确提到:

This function only shuffles the array along the first axis of a multi-dimensional array. The order of sub-arrays is changed but their contents remains the same.

>>> np.random.shuffle(x)
>>> x
array([[5, 5],
[3, 3],
[1, 1],
[2, 2],
[4, 4]])

或使用np.random.permutation :

>>> class_ids = np.random.permutation(x.shape[0])  # shuffle the first dimensions indices
>>> x[class_ids]
array([[2, 2],
[4, 4],
[3, 3],
[5, 5],
[1, 1]])

关于python - x=x[class_id] 在 NumPy 数组上使用时会做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45852128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com