在python中获取有关函数的信息,查看源代码

时间:2010-03-25 13:48:33

标签: python numpy

以下代码来自matplotlib库:

#!/usr/bin/env python
from pylab import *

x = array([10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5])
y = array([8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68])

我是python的新手,想要从输入文件中更改xy的内容。我有两个简短的问题:

  1. 我猜是array的意思, 但是一旦我在代码上看到它,怎么样 我能知道哪个库吗? 属于和更多的信息 它?我应该使用某种python吗? debug命令?
  2. 如何插入我的内容 输入文件到x
  3. 由于

5 个答案:

答案 0 :(得分:2)

关于你的1.这是由于给你这个程序的人的坏习惯。应该是:

#!/usr/bin/env python
import pylab

x = pylab.array([10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5])
y = pylab.array([8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68])

help(pylab.array)

#!/usr/bin/env python
from pylab import array

x = array([10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5])
y = array([8.04, 6.95, 7.58, 8.81, 8.33, 9.96, 7.24, 4.26, 10.84, 4.82, 5.68])

help(array)

使用help(something)。它有助于:)

如果程序变得有点复杂,使用显式导入非常方便。我知道from package import *最好的唯一情况是在python提示符下播放时尝试输出。

关于文件,你能描绘出文件的样子吗?而且我相信numpy在某处有一个数组加载函数,请查看cookbook

答案 1 :(得分:1)

(1)启动python控制台并在你想要了解的任何对象/类/变量上使用dir()函数。它将打印出对象的所有方法和属性。

>> import pylab        
>> x =  pylab.array([10, 8, 13, 9, 11, 14, 6, 4, 12, 7, 5])
>> dir(x)

(2)在python文档中查找File Objects

答案 2 :(得分:1)

  • 使用help函数找出对象可以执行的操作。

    import pylab
    help(pylab.array)
    
  • “它属于哪个图书馆”是一个有趣的问题。如果您重构代码而不使用import *,则可以轻松了解正在使用它的模块。 (永远不要使用import *。)这并不意味着它是原来的家 - pylab只是为了方便汇集了一堆东西的地方。 pylabmatplotlib.pylab获取numpy,从numpy.core.multiarray获取它,pylab.array.__module__(这是一个C扩展模块)。

    • 就我个人而言,我认为你最好不要使用pylab,只需从numpyscipymatplotlib获取内容,因为你需要保留它们事情有条理。引用Python的禅宗:命名空间是一个很棒的主意 - 让我们做更多的事情!
  • 如何从文件构建numpy数组取决于文件的格式。 numpy.fromfile / pylab.fromfile可以导入存储数组数据的二进制文件。 (这与numpy.tofile使用的格式相同 - 那里有很大的震撼。)

答案 3 :(得分:0)

array似乎是pylab中的一个函数/类。您可以help(array)查找更多内容 - 这取决于array是否存在正确的文档字符串。

from module import *在几个方面是一个有问题的习惯用语,因为它很难找到标识符的来源。

import pylab
x = pylab.array(...)

可能是更好的方式。

答案 4 :(得分:0)

回答问题#2,如果你的文件是这样的:

10 8.04
8 6.95
13 7.58
9 8.81
11 8.33
14 9.96
6 7.24
4 4.26
12 10.84
7 4.82
5 5.68

然后我会这样做:

x_list = list()
y_list = list()

fp = open('coords.txt', 'r')
for line in fp:
    line = line.strip()   # Remove trailing whitespace
    if not line: continue # Skip empty lines
    a,b = line.split()    # Split line by whitespace, storing coords in a & b
    x_list.append(a)      # Add a to x_list
    y_list.append(b)      # Add b to y_list
fp.close()

x = array(x_list)
y = array(y_list)
相关问题