为了计算 seq[start:stop:step],Python 会调用 seq.__getitem__(slice(start, stop, step))。
[ ] 运算符也可以接收以逗号分隔的多个索引或切片,举例来说,Numpy 中,你可以使用 a[i, j] 取得二维的 numpy.ndarray,以及使用 a[m:n, k:l] 这类的运算符获取二维的切片。处理 [ ] 运算符的 __getitem__ 和 __setitem__ 特殊方法,都只会接收 tuple 格式的 a[i, j] 内的索引,换句话说,Python 调用 a.getitem((i, j)) 算出来的 a[i, j]
Python 会将省略号(三个句点)视为一种标记,在 Numpy 对多维矩阵进行切片时,会使用快捷的方式 ...,例如一个四维矩阵 a[i, ...] 相当于 a[i, :, :, :] 的简写。
我们可以用 map 和 filter 达到 列表生成式的效果
先说明一下,特殊方法的存在是为了被 Python 解释器调用的,我们自己不需要调用它。也就是说没有 my_object.__len__() 这种写法,而是应该使用 len(my_object)。一般来说,通过内置函数(len, iter, str 等等)来使用特殊方法是最好的选择,这些内置函数不仅会调用特殊方法,通常还会提供特殊的好处。而且对于内置类来说,它的速度更快。
通过特殊方法,我们可以自定义对象的 '+' 操作,以后的章节会对此详细介绍,这里只是展示一下特殊方法的使用。
我们想要实现一个简单的支持加法,取绝对值,标量乘法的二维向量类
__getitem__ AND __len__ 方法¶下面看一个生成扑克牌以及对其进行操作的例子
address: https://github.com/ghvn7777/kaggle/blob/master/ibm_employee/predict_ibm_attrition.ipynb
保持雇员的快乐和对公司满意度是一个古老的挑战,如果你对雇员投资了很多,而他却离开了,这意味着你还要花费更多时间雇用别人,本着 Kaggle 的精神,让我们构建一个预测模型来根据 IBM 的数据集预测 IBM 员工的流失
这个笔记包括以下内容:
Let's Go.
© kaka 2016
Powered by Pelican