V2EX 首页   注册   登录
 justou 最近的时间轴更新

justou

  •   V2EX 第 171389 号会员,加入于 2016-05-01 22:34:52 +08:00
    根据 justou 的设置,主题列表只有在你登录之后才可查看
    justou 最近回复了
    github 上有 scipy 源码;

    不必重新造轮子, GSL 很好用 https://www.gnu.org/software/gsl/doc/html/integration.html ;

    C++调 Python 模块太慢, 且受制于 gil, 通常都是用 C/C++来加速 Python
    这样说明是不是很容易理解?

    import sys, locale
    fh = open("f.txt", "w", encoding="utf-8") # 换成"gbk", "big5"等其它编码试试
    sys.stdout = fh
    print(sys.stdout.encoding, sys.getdefaultencoding(), locale.getpreferredencoding())
    print('你好,世界')
    fh.close()
    int* 加 1 后是移动了 sizeof(int)个字节了
    说说我从 python 深入下去的思路: Python → Cython → C → C++

    Python:
    各种入门级书籍, 官方文档教程→The Python3 Standard Library by Example(新出的) /Python Cookbook /Fluent Python

    Cython:
    官方文档 → Learning Cython Programming/Cython A Guide for Python Programmers

    C:
    kenneth A Reek, Pointers on C(C 与指针) → Expert C Programming: Deep C Secrets(C 专家编程) → C Traps and Pitfalls(C 陷阱与缺陷) 这三部曲都有影印版

    (这时候可以开始读 Python 源码了, 有一本叫<python 源码剖析>的书很值得参考, 虽然比较老,好像是剖析的 py2.5)

    C++:
    C++ Primer(写得有点啰嗦, 以前我用这个入门的, 应该还有更好的) → The C++ Standard Library: A tutorial and reference(2nd) → C++ Templates The Complete Guide(2nd)(最近才出的 2, 详述了 C++11/C++14/C++17 的模板特性) → Effective Modern C++ , Optimized C++ , Clean C++ 等各种修炼 c++内功的, C++ Concurrency in Action 专门讲多线程编程的...

    -----------------------------------------------------------

    以上仅仅是从编程语言方面的思路, 个人觉得学习曲线没那么陡, 但是比较长---看似比较长, 但有一定积累后可以接收得很快, 虽然是在走上坡路, 但是积累的东西会让你做加速运动, 但在学的时候要多加实践多做笔记, 不然忘得飞快. 数据结构算法是必须的, 数据库网络,计算机系统, 操作系统,编译原理之类的根据自己的方向和需求去补充.

    最后的编程技能就是 Python/Cython/C/C++的组合拳, 面对实际问题时可以施展得很开.

    在学校的时候做计算物理, 用 Cython/C/C++加速 Python 用得挺多的, Python 很多时候是做数据的预处理, 以及一些不是计算密集型的数据处理(数据处理毕竟是 py 强项), 然后计算密集型的就用 Cython/C/C++完成(在 numpy/scipy 无法满足性能要求的情况下), 最后返回结果给 Python 后处理; 到公司后做图像算法, Python 常用来做一些给大家用的小工具(PyQt), 图像批处理, 算法测试, 差不多当脚本用了, 最后算法是用 C++写成 dll 给后端的 C#调用, 因为我不太懂 C#, 后端哥们儿又不太懂 C++, 对接起来很是尴尬, 最近我们准备组队一起刷 C++跟 C#
    挺好找的, 我就是用 python 做数据科学出来的, 后来找了个 C++的算法攻城狮
    自动过滤了 3 楼的评论么
    41 天前
    回复了 DongDongXie 创建的主题 程序员 被 Python 编码搞蒙逼
    纠结编码问题不要局限于 py2py3 了, 要系统的了解下字符串在计算机中的表示方式以及编码原理, 清楚了原理再结合具体语言到具体的环境去实践并加深理解, 不然即使熟悉了 python 处理编码的方式, 换了个环境又搞蒙了. 不搞清楚原理怎么治都只是治标不治本.
    给出一些原理性的参考资料:
    Computer Systems A Programmer ’ s Perspective: Chapter2, Representing and Manipulating
    Information
    http://unicodebook.readthedocs.io/
    51 天前
    回复了 PHizing 创建的主题 Python 怎么把 bytearray 转换为二进制数据?
    你保存的是 python 字典, 它的值是个 bytearray 对象, 不论是 bytes 还是 bytearray, 你把它以字符串形式输出来的时候都是那样显示的(这个是由它的__str__方法决定的), 至于你说的要传递给 C++处理, 意思是要传递一个 python 的 bytes 或 bytearray 给 C++么? 这有很多方法, 通过 Cython 搭桥是最直观简单的.

    你想的大概是这样的 C++可以直接处理的二进制数据:

    from struct import pack
    bin_val= bytearray("123abc 呵呵", encoding='utf-8')
    with open("test_bin.bin", 'bw') as fout:
    fout.write(pack('%ss'%len(bin_val), bin_val))

    随便找个 hex editor 检查下 test_bin 就很清楚了

    https://docs.python.org/3/library/struct.html#module-struct
    51 天前
    回复了 livc 创建的主题 互联网 好像明白了为什么叫 jd 二手东。。
    试试 memoryview
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1169 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 22ms · UTC 00:09 · PVG 08:09 · LAX 16:09 · JFK 19:09
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1