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

可爱的 Python: Numerical Python

 2007-03-29 12:14:19 来源:WEB开发网   
核心提示: 清单 12. 使用壁炉取暖>>> north = room[:,0]>>> near_fireplace = north[2:4,2:5]>>> near_fireplace += 8>>> north[3,2] =

清单 12. 使用壁炉取暖

>>> north = room[:,0]
>>> near_fireplace = north[2:4,2:5]
>>> near_fireplace += 8
>>> north[3,2] = 90 # the fireplace cell itself
>>> print room
[[[ 70. 70. 70. 70. 70.]
 [ 70. 70. 70. 70. 70.]
 [ 70. 70. 70. 70. 70.]]
[[ 70. 70. 70. 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. 66. 66.]]]

这里我们使用了一些比较巧妙的索引方法,可以沿多维的方向来指定层面。这些视图应该保留,以后还会用到。例如,您可能希望知道整个北面墙上的当前温度:

清单 13. 查看北面的墙

>>> print north
[[ 70. 70. 70. 70. 70.]
[ 70. 70. 70. 70. 70.]
[ 70. 78. 78. 78. 70.]
[ 66. 74. 90. 74. 66.]]

更多操作

以上介绍的仅仅是 Numarray 中便捷的函数和数组方法/属性中的一小部分。我希望能给您一些初步的认识;Numarray 文档是深入学习的极好参考资料。

既然我们的房间现在各处的温度不再相同,我们可能需要判断全局的状态。例如,当前房间内的平均温度:

清单 14. 查看平均化后的数组

>>> add.reduce(room.flat)/len(room.flat)
70.066666666666663

这里需要解释一下。您可以对数组进行的所有操作都有相对应的 通用函数 (ufunc)。所以,我们在前面的代码中使用的 floor -= 4 ,可以替换为 subtract(floor,4,floor) 。指定 subtract() 的三个参数,操作就可以正确完成。您还可以用 floor=subtract(floor,4) 来创建 floor 的一个拷贝,但这可能不是您所期望的,因为变化将发生在一个新的数组中,而不是 room 的一个子集中。

上一页  2 3 4 5 6 7 8 9  下一页

Tags:可爱 Python Numerical

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