关于混排赋值的问题
来源: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回答
-
这是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的原理也类似。
012018-11-13
相似问题