关于混排赋值的问题

来源:2-7 神经元实现(二分类逻辑斯蒂回归模型实现)

FANGYUAN_

2018-11-10

def _shuffle_data(self):
p = np.random.permutation(self._num_examples)
self._data = self._data[p]
self._labels = self._labels[p]
p 的输出是一个numpy.ndarray 然后里面的值是从0到样本数量的混排数组
但是没想明白的是self._data[p] 为什么能将self._data 里面的数据重新根据混排数组p的顺序重新调整呢?

是因为self._data[p] 实际上是每一次根据p数组里面当前的值(假设为a)取出self.data[a] 然后赋值给self._data?依次类推吗?还是别的什么原因?

刚学python没多久,虽然感觉这个问题不应该在这里问,但是查了很久的资料 numpy的数组资料还有python的list赋值或者是其它一些乱七八糟的资料,然后还是没想明白自己不懂的地方。求各位大佬能指点一下这是什么知识点吗? 谢谢!

写回答

1回答

正十七

2018-11-12

这是numpy里支持的特性,可以把一组index传递给一个numpy array去获取一个新的array,比如:

>>> import numpy as np
>>> a = np.asarray([i for i in range(10)])
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = [1,3,5,7]
>>> a[b]
array([1, 3, 5, 7])

shuffle的原理也类似。

0
1
FANGYUAN_
谢谢老师~
2018-11-13
共1条回复

深度学习之神经网络(CNN/RNN/GAN)算法原理+实战

深度学习算法工程师必学,深入理解深度学习核心算法CNN RNN GAN

2617 学习 · 935 问题

查看课程