WEB开发网
开发学院软件开发Python 可爱的 Python: Numerical Python 阅读

可爱的 Python: Numerical Python

 2007-03-29 12:14:19 来源:WEB开发网   
核心提示: 然后,我们需要定义邻近单元的区域,可爱的 Python: Numerical Python(9),由于我们的房间很小,所以经常会选择到房间的表面、边沿或者一角 -- 单元的 region 可能会比最大的 27 元素 (3x3x3) 子集要小,我鼓励您在自己的系统上安装 Numarray 和

然后,我们需要定义邻近单元的区域。由于我们的房间很小,所以经常会选择到房间的表面、边沿或者一角 -- 单元的 region 可能会比最大的 27 元素 (3x3x3) 子集要小。这没关系;我们只需要使用正确的分母来计算平均值。这个新的平均温度值被赋给前面随机选择的单元。

您可以在您的模型中执行任意多次的平均化过程。每一次调用只调整一个单元。多次调用会使用房间的某些部分的温度逐渐趋于平均。即使数组是动态改变的, equalize() 函数照样可以返回它的数组。当您只想平均化模型的一个 拷贝时这将非常有用:

清单 17. 执行 equalize()

>>> print equalize(room.copy())
[[[ 70.    70.    70.    70.    70.   ]
 [ 70.    70.    70.    70.    70.   ]
 [ 70.    70.    70.    70.    70.   ]]
[[ 70.    70.    71.333333 70.    70.   ]
 [ 70.    70.    70.    70.    70.   ]
 [ 70.    70.    70.    70.    70.   ]]
[[ 70.    78.    78.    78.    70.   ]
 [ 70.    70.    70.    70.    70.   ]
 [ 70.    70.    70.    70.    70.   ]]
[[ 66.    74.    90.    74.    66.   ]
 [ 66.    66.    66.    66.    66.   ]
 [ 66.    66.    66.    68.    66.   ]]]

结束语

本文仅介绍了 Numarray 的部分功能。它的功能远不止这些。例如,您可以使用填充函数来填充数组,这对于物理模型来说非常有用。您不但可以通过层面而且可以通过索引数组来指定数组的子集 -- 这使您不但可以对数组中不连续的片断进行操作,而且可以 -- 通过 take() 函数 -- 以各种方式重新定义数组的维数和形状。

前面我所描述的大部分操作都是针对于标量和数组的;您还可以执行数组之间的操作,包括那些不同维度的数组之间。这涉及到的内容很多,但通过 API 可以直观地完成所有这些操作。

我鼓励您在自己的系统上安装 Numarray 和 / 或 Numeric。它不难上手,并且它提供的对数组的快速操作可以应用于极广泛的领域 -- 往往是您开始时意想不到的。

上一页  4 5 6 7 8 9 

Tags:可爱 Python Numerical

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接