我正在努力学习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()
答案 0 :(得分:2)
上一行import pandas.util.testing as tm
导入模块pandas.util.testing
,为方便起见,将其命名为tm
。因此,tm
之后引用此模块,因此tm.N
引用模块中名为“N
”的对象(无论是什么)。
答案 1 :(得分:2)
N
是testing.py
模块中的全局模块,在模块周围用于测试数组和其他内容。其默认值为30.例如
np.arange(N * K).reshape((N, K))
Series(randn(N), index=index)
在您发布的代码中,它的使用率很低,因为makeTimeDataFrame
可以使用nper
参数提供,如果N
是nper
,则最终会被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)
您可以从docstring和type()功能获取有关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