Python 2.7.6 64位windows 8.1系统安装numpy, scripy和scikit-learn

环境

Python 2.7.6, 64bit windows 8.1.

安装步骤

  1. 安装pip (pip安装好后会在Python27\下生成Script文件夹,其中包含pip.exe, eazy_install.exe等文件,然后将路径Python27\Script\添加于系统变量变量Path路径中。2.7.9和3.4.3以后在Python\Script\文件夹下自带pip, eazy_install).
  2. 这里分别找到numpy-1.9.2+mkl-cp27-none-win_amd64.whl, scipy-0.15.1-cp27-none-win_amd64.whl, scikit_learn-0.16.1-cp27-none-win_amd64.whl, 使用命令pip install numpy-1.9.2+mkl-cp27-none-win_amd64.whl按顺序安装3个包。(版本可能有变化)
  3. 若遇到UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 1: ordinal not in range(128)错误,打开Python27\Lib下的 mimetypes.py文件,在256行的default_encoding = sys.getdefaultencoding()前面添加三行:

继续阅读Python 2.7.6 64位windows 8.1系统安装numpy, scripy和scikit-learn

Why C++ pow(10, 5) = 9999 ? (double type, FPU, SSE)

The question is coming from Why pow(10,5) = 9,999 in C++ in StackOverflow.

Environment

  • OS: Win8.1, 64bit
  • IDE: Code::Blocks 13.12

Code:

const int num = 10;

    for(int i = 0; i < 5; ++i){
        int res = pow(num, i);
    cout << res << endl;
    }

Wrong result:

1
10
99
1000
9999

Why?

继续阅读Why C++ pow(10, 5) = 9999 ? (double type, FPU, SSE)

Python包发布到PyPI的常用命令

Python包发布版本创建

  • python setup.py sdist:创建源码发布。
  • python setup.py install:安装。
  • python setup.py bdist_wininst:创建MS Windows安装版本。
  • python setup.py bdist_rpm:创建RPM安装版本。
  • python setup.py bdist --help-formats:查看可创建的发布版本格式。

Python包版本发布于PyPI

注意:每个文件上传后,即使删除该文件,也无法重新上传相同名称的文件,所以要谨慎上传!要想重新上传同名文件,只能”曲线救国”,如更新一次版本号(如从1.0.1更新成1.0.2),或者修改源代码发行包格式,如将tar.gz更改为zip压缩格式。

  • python setup.py register:PyPI新版本注册。
  • python setup.py sdist --formats=zip upload:上传Zip格式的源码发布。

继续阅读Python包发布到PyPI的常用命令

百度数据挖掘实习工程师一、二现场面试(深圳)

一面

项目

详细介绍项目。

现场手写代码

  • 字符串反转
  • 快排

Python

  • 如何提高Python的运行效率
  • 写一个简单的正则匹配表达式(将文本中的123.4匹配出来)

机器学习

  • KNN(分类与回归)
  • CART(回归树用平方误差最小化准则,分类树用基尼指数最小化准则)
  • Logistics(推导)
  • GBDT(利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树)
  • 随机森林(Bagging+CART)
  • SVM与随机森林比较
  • 改变随机森林的训练样本数据量,是否会影响到随机森林学习到的模型的复杂度
  • Logistics与随机森林比较
  • GBDT与随机森林比较
  • 自己实现过什么机器学习算法
  • 推荐算法(基于用户的协同过滤,基于内容的协同过滤)
  • 如何做一个新闻推荐

继续阅读百度数据挖掘实习工程师一、二现场面试(深圳)

LeetCode 155 Min Stack 使用一个单链表解法

大家的解法都是使用两个栈,一个正常栈,一个最小栈,当有新的最小值时则同时压入最小栈,当弹出的值等于最小值时则同时弹出最小栈栈顶。时间复杂度为O(1),空间复杂度为O(n+k)(k为最小栈的长度)。

我用单链表A了这道题,单链表表头存放最小值,push时从表头插入,模拟入栈,并比较最小值,随时更新表头的最小值;pop时,弹出第二个节点,若popped的值为最小值,则遍历整个链表,更新新的最小值;通过访问链表第二个节点得到栈顶元素,访问表头得到最小值。push,top,getMin的时间复杂度均为O(1),但pop的时间复杂度为O(n),空间复杂度为O(n),此解法对于内存限制的情况有用。

继续阅读LeetCode 155 Min Stack 使用一个单链表解法