.N在这段Python代码中意味着什么?

时间:2014-09-17 21:07:41

标签: python

我正在努力学习Python的艰难之路,并在继续之前浏览Git Hub上的一些代码。我只是很好奇.N在" tm.N = 1000"以及它与代码结束的关系。

import matplotlib.pyplot as plt

import random
import pandas.util.testing as tm
tm.N = 1000
df = tm.makeTimeDataFrame()
import string
foo = list(string.letters[:5]) * 200
df['indic'] = list(string.letters[:5]) * 200
random.shuffle(foo)
df['indic2'] = foo
df.boxplot(by=['indic', 'indic2'], fontsize=8, rot=90)

plt.show()

7 个答案:

答案 0 :(得分:2)

上一行import pandas.util.testing as tm导入模块pandas.util.testing,为方便起见,将其命名为tm。因此,tm之后引用此模块,因此tm.N引用模块中名为“N”的对象(无论是什么)。

答案 1 :(得分:2)

Ntesting.py模块中的全局模块,在模块周围用于测试数组和其他内容。其默认值为30.例如

np.arange(N * K).reshape((N, K))
Series(randn(N), index=index)

在您发布的代码中,它的使用率很低,因为makeTimeDataFrame可以使用nper参数提供,如果Nnper,则最终会被df = tm.makeTimeDataFrame(nper=1000) 替换不提供。这是正确的用法,不会让您感到困惑:

{{1}}

答案 2 :(得分:1)

来源:https://github.com/pydata/pandas/blob/master/pandas/util/testing.py

N是pandas.util.testing库中的变量(导入为tm)。它在该库中定义的一些函数中使用,包括在makeTimeSeries中调用的getTimeSeriesData函数,而makeTimeDataFrame函数又在您调用的df = tm.makeTimeDataFrame()函数中调用{{1}}

答案 3 :(得分:1)

您可以从docstringtype()功能获取有关pandas.util.testing.N的信息:

>>> tm.N.__doc__
'int(x[, base]) -> integer\n\nConvert a string or number to an integer, if possible.  A floating point\nargument will be truncated towards zero (this does not include a string\nrepresentation of a floating point number!)  When converting a string, use\nthe optional base.  It is an error to supply a base when converting a\nnon-string.  If base is zero, the proper base is guessed based on the\nstring content.  If the argument is outside the integer range a\nlong object will be returned instead.'
>>> print(tm.N.__doc__)
int(x[, base]) -> integer

Convert a string or number to an integer, if possible.  A floating point
argument will be truncated towards zero (this does not include a string
representation of a floating point number!)  When converting a string, use
the optional base.  It is an error to supply a base when converting a
non-string.  If base is zero, the proper base is guessed based on the
string content.  If the argument is outside the integer range a
long object will be returned instead.
>>> type(tm.N)
<type 'int'>

答案 4 :(得分:1)

它的长度为1000的时间序列。

>>> df.head()
Out[7]: 
                   A         B         C         D
2000-01-03 -0.734093 -0.843961 -0.879394  0.415565
2000-01-04  0.028562 -1.098165  1.292156  0.512677
2000-01-05  1.135995 -0.864060  1.297646 -0.166932
2000-01-06 -0.738651  0.426662  0.505882 -0.124671
2000-01-07 -1.242401  0.225207  0.053541 -0.234740
>>> len(df)
Out[8]: 1000

答案 5 :(得分:1)

在pandas.util.testing模块中的pandas中,N属性表示TimeSeries 请参阅以下部分中的this参考:

We could alternatively have used the unit testing function to create a TimeSeries of length 20:


>>>> pandas.util.testing.N = 20
>>>> ts = pandas.util.testing.makeTimeSeries()

答案 6 :(得分:0)

.N提供数组类型中的元素数。例如,如果您使用色彩映射, plt.get_cmap('Pastel1').N将返回9,因为它包含9种颜色 plt.get_cmap('nipy_spectral').N将返回256