月度归档: 2024 年 3 月

1035 篇文章

091、使用 OOP 对森林火灾建模
使用 OOP 对森林火灾建模 %matplotlib inline import matplotlib.pyplot as plt import numpy as np 对森林建模 class Forest(object): def __init__(self, size=(150, 150), p_sapling=0.0025, p_lightning=5.e-6, name=None): se…
090、简介
简介 属性 attributes 属性是与对象绑定的一组数据,可以只读,只写,或者读写,使用时不加括号,例如: f = file("new_file", 'w') 显示模式属性: f.mode 'w' 是否关闭: f.closed False mode 是只读属性,所以这样会报错: f.mode = 'r' ---------------…
089、ctypes
ctypes 基本用法 ctypes 是一个方便 Python 调用本地已经编译好的外部库的模块。 from ctypes import util, CDLL 标准 C 库 使用 util 来找到标准 C 库: libc_name = util.find_library('c') # on WINDOWS print libc_name msvcr90.dll 使用 CDLL …
088、生成编译注释
生成编译注释 %%file fib_orig.pyx def fib(n): a,b = 1,1 for i in range(n): a,b = a+b, a return a Writing fib_orig.pyx !cython -a fib_orig.pyx 在浏览器中打开 fib_orig.html 可以查看内容,windows 下打开网页使用: !start fib_orig.htm…
087、Cython:Typed memoryviews
Cython:Typed memoryviews 例子 这里 double[::1] 是一种 memoryview 方法,效率跟 Numpy 数组差不多,可以给 C 数组赋值,可以给 Numpy 数组赋值,可以像 Numpy 一样切片: %%file cython_sum.pyx def cython_sum(double[::1] a): cdef double s = 0.0 cdef int…
083、Python 扩展模块
Python 扩展模块 简介 C Library Interface Python c header c implementation Wrapper C $\leftrightarrows$ Python communication between py + c import fact fact.fact(10) Python 扩展模块将 PyInt(10) 转化为 CInt(10) 然后调用 …
082、简介
简介 使用 Python 和另一种语言混编的好处 至少有以下四个原因: Best of both worlds - 结合两种语言的优点:已经优化和测试过的代码库 + Python 的灵活 Python as glue - Python 作为连接的桥梁,将很多其他语言的模块结合到一个大型程序中 Speed up Python - 使用一个更快的语言帮助加速 Python Division of la…