Chris@87
|
1 """
|
Chris@87
|
2 =========
|
Chris@87
|
3 Constants
|
Chris@87
|
4 =========
|
Chris@87
|
5
|
Chris@87
|
6 Numpy includes several constants:
|
Chris@87
|
7
|
Chris@87
|
8 %(constant_list)s
|
Chris@87
|
9 """
|
Chris@87
|
10 #
|
Chris@87
|
11 # Note: the docstring is autogenerated.
|
Chris@87
|
12 #
|
Chris@87
|
13 from __future__ import division, absolute_import, print_function
|
Chris@87
|
14
|
Chris@87
|
15 import textwrap, re
|
Chris@87
|
16
|
Chris@87
|
17 # Maintain same format as in numpy.add_newdocs
|
Chris@87
|
18 constants = []
|
Chris@87
|
19 def add_newdoc(module, name, doc):
|
Chris@87
|
20 constants.append((name, doc))
|
Chris@87
|
21
|
Chris@87
|
22 add_newdoc('numpy', 'Inf',
|
Chris@87
|
23 """
|
Chris@87
|
24 IEEE 754 floating point representation of (positive) infinity.
|
Chris@87
|
25
|
Chris@87
|
26 Use `inf` because `Inf`, `Infinity`, `PINF` and `infty` are aliases for
|
Chris@87
|
27 `inf`. For more details, see `inf`.
|
Chris@87
|
28
|
Chris@87
|
29 See Also
|
Chris@87
|
30 --------
|
Chris@87
|
31 inf
|
Chris@87
|
32
|
Chris@87
|
33 """)
|
Chris@87
|
34
|
Chris@87
|
35 add_newdoc('numpy', 'Infinity',
|
Chris@87
|
36 """
|
Chris@87
|
37 IEEE 754 floating point representation of (positive) infinity.
|
Chris@87
|
38
|
Chris@87
|
39 Use `inf` because `Inf`, `Infinity`, `PINF` and `infty` are aliases for
|
Chris@87
|
40 `inf`. For more details, see `inf`.
|
Chris@87
|
41
|
Chris@87
|
42 See Also
|
Chris@87
|
43 --------
|
Chris@87
|
44 inf
|
Chris@87
|
45
|
Chris@87
|
46 """)
|
Chris@87
|
47
|
Chris@87
|
48 add_newdoc('numpy', 'NAN',
|
Chris@87
|
49 """
|
Chris@87
|
50 IEEE 754 floating point representation of Not a Number (NaN).
|
Chris@87
|
51
|
Chris@87
|
52 `NaN` and `NAN` are equivalent definitions of `nan`. Please use
|
Chris@87
|
53 `nan` instead of `NAN`.
|
Chris@87
|
54
|
Chris@87
|
55 See Also
|
Chris@87
|
56 --------
|
Chris@87
|
57 nan
|
Chris@87
|
58
|
Chris@87
|
59 """)
|
Chris@87
|
60
|
Chris@87
|
61 add_newdoc('numpy', 'NINF',
|
Chris@87
|
62 """
|
Chris@87
|
63 IEEE 754 floating point representation of negative infinity.
|
Chris@87
|
64
|
Chris@87
|
65 Returns
|
Chris@87
|
66 -------
|
Chris@87
|
67 y : float
|
Chris@87
|
68 A floating point representation of negative infinity.
|
Chris@87
|
69
|
Chris@87
|
70 See Also
|
Chris@87
|
71 --------
|
Chris@87
|
72 isinf : Shows which elements are positive or negative infinity
|
Chris@87
|
73
|
Chris@87
|
74 isposinf : Shows which elements are positive infinity
|
Chris@87
|
75
|
Chris@87
|
76 isneginf : Shows which elements are negative infinity
|
Chris@87
|
77
|
Chris@87
|
78 isnan : Shows which elements are Not a Number
|
Chris@87
|
79
|
Chris@87
|
80 isfinite : Shows which elements are finite (not one of Not a Number,
|
Chris@87
|
81 positive infinity and negative infinity)
|
Chris@87
|
82
|
Chris@87
|
83 Notes
|
Chris@87
|
84 -----
|
Chris@87
|
85 Numpy uses the IEEE Standard for Binary Floating-Point for Arithmetic
|
Chris@87
|
86 (IEEE 754). This means that Not a Number is not equivalent to infinity.
|
Chris@87
|
87 Also that positive infinity is not equivalent to negative infinity. But
|
Chris@87
|
88 infinity is equivalent to positive infinity.
|
Chris@87
|
89
|
Chris@87
|
90 Examples
|
Chris@87
|
91 --------
|
Chris@87
|
92 >>> np.NINF
|
Chris@87
|
93 -inf
|
Chris@87
|
94 >>> np.log(0)
|
Chris@87
|
95 -inf
|
Chris@87
|
96
|
Chris@87
|
97 """)
|
Chris@87
|
98
|
Chris@87
|
99 add_newdoc('numpy', 'NZERO',
|
Chris@87
|
100 """
|
Chris@87
|
101 IEEE 754 floating point representation of negative zero.
|
Chris@87
|
102
|
Chris@87
|
103 Returns
|
Chris@87
|
104 -------
|
Chris@87
|
105 y : float
|
Chris@87
|
106 A floating point representation of negative zero.
|
Chris@87
|
107
|
Chris@87
|
108 See Also
|
Chris@87
|
109 --------
|
Chris@87
|
110 PZERO : Defines positive zero.
|
Chris@87
|
111
|
Chris@87
|
112 isinf : Shows which elements are positive or negative infinity.
|
Chris@87
|
113
|
Chris@87
|
114 isposinf : Shows which elements are positive infinity.
|
Chris@87
|
115
|
Chris@87
|
116 isneginf : Shows which elements are negative infinity.
|
Chris@87
|
117
|
Chris@87
|
118 isnan : Shows which elements are Not a Number.
|
Chris@87
|
119
|
Chris@87
|
120 isfinite : Shows which elements are finite - not one of
|
Chris@87
|
121 Not a Number, positive infinity and negative infinity.
|
Chris@87
|
122
|
Chris@87
|
123 Notes
|
Chris@87
|
124 -----
|
Chris@87
|
125 Numpy uses the IEEE Standard for Binary Floating-Point for Arithmetic
|
Chris@87
|
126 (IEEE 754). Negative zero is considered to be a finite number.
|
Chris@87
|
127
|
Chris@87
|
128 Examples
|
Chris@87
|
129 --------
|
Chris@87
|
130 >>> np.NZERO
|
Chris@87
|
131 -0.0
|
Chris@87
|
132 >>> np.PZERO
|
Chris@87
|
133 0.0
|
Chris@87
|
134
|
Chris@87
|
135 >>> np.isfinite([np.NZERO])
|
Chris@87
|
136 array([ True], dtype=bool)
|
Chris@87
|
137 >>> np.isnan([np.NZERO])
|
Chris@87
|
138 array([False], dtype=bool)
|
Chris@87
|
139 >>> np.isinf([np.NZERO])
|
Chris@87
|
140 array([False], dtype=bool)
|
Chris@87
|
141
|
Chris@87
|
142 """)
|
Chris@87
|
143
|
Chris@87
|
144 add_newdoc('numpy', 'NaN',
|
Chris@87
|
145 """
|
Chris@87
|
146 IEEE 754 floating point representation of Not a Number (NaN).
|
Chris@87
|
147
|
Chris@87
|
148 `NaN` and `NAN` are equivalent definitions of `nan`. Please use
|
Chris@87
|
149 `nan` instead of `NaN`.
|
Chris@87
|
150
|
Chris@87
|
151 See Also
|
Chris@87
|
152 --------
|
Chris@87
|
153 nan
|
Chris@87
|
154
|
Chris@87
|
155 """)
|
Chris@87
|
156
|
Chris@87
|
157 add_newdoc('numpy', 'PINF',
|
Chris@87
|
158 """
|
Chris@87
|
159 IEEE 754 floating point representation of (positive) infinity.
|
Chris@87
|
160
|
Chris@87
|
161 Use `inf` because `Inf`, `Infinity`, `PINF` and `infty` are aliases for
|
Chris@87
|
162 `inf`. For more details, see `inf`.
|
Chris@87
|
163
|
Chris@87
|
164 See Also
|
Chris@87
|
165 --------
|
Chris@87
|
166 inf
|
Chris@87
|
167
|
Chris@87
|
168 """)
|
Chris@87
|
169
|
Chris@87
|
170 add_newdoc('numpy', 'PZERO',
|
Chris@87
|
171 """
|
Chris@87
|
172 IEEE 754 floating point representation of positive zero.
|
Chris@87
|
173
|
Chris@87
|
174 Returns
|
Chris@87
|
175 -------
|
Chris@87
|
176 y : float
|
Chris@87
|
177 A floating point representation of positive zero.
|
Chris@87
|
178
|
Chris@87
|
179 See Also
|
Chris@87
|
180 --------
|
Chris@87
|
181 NZERO : Defines negative zero.
|
Chris@87
|
182
|
Chris@87
|
183 isinf : Shows which elements are positive or negative infinity.
|
Chris@87
|
184
|
Chris@87
|
185 isposinf : Shows which elements are positive infinity.
|
Chris@87
|
186
|
Chris@87
|
187 isneginf : Shows which elements are negative infinity.
|
Chris@87
|
188
|
Chris@87
|
189 isnan : Shows which elements are Not a Number.
|
Chris@87
|
190
|
Chris@87
|
191 isfinite : Shows which elements are finite - not one of
|
Chris@87
|
192 Not a Number, positive infinity and negative infinity.
|
Chris@87
|
193
|
Chris@87
|
194 Notes
|
Chris@87
|
195 -----
|
Chris@87
|
196 Numpy uses the IEEE Standard for Binary Floating-Point for Arithmetic
|
Chris@87
|
197 (IEEE 754). Positive zero is considered to be a finite number.
|
Chris@87
|
198
|
Chris@87
|
199 Examples
|
Chris@87
|
200 --------
|
Chris@87
|
201 >>> np.PZERO
|
Chris@87
|
202 0.0
|
Chris@87
|
203 >>> np.NZERO
|
Chris@87
|
204 -0.0
|
Chris@87
|
205
|
Chris@87
|
206 >>> np.isfinite([np.PZERO])
|
Chris@87
|
207 array([ True], dtype=bool)
|
Chris@87
|
208 >>> np.isnan([np.PZERO])
|
Chris@87
|
209 array([False], dtype=bool)
|
Chris@87
|
210 >>> np.isinf([np.PZERO])
|
Chris@87
|
211 array([False], dtype=bool)
|
Chris@87
|
212
|
Chris@87
|
213 """)
|
Chris@87
|
214
|
Chris@87
|
215 add_newdoc('numpy', 'e',
|
Chris@87
|
216 """
|
Chris@87
|
217 Euler's constant, base of natural logarithms, Napier's constant.
|
Chris@87
|
218
|
Chris@87
|
219 ``e = 2.71828182845904523536028747135266249775724709369995...``
|
Chris@87
|
220
|
Chris@87
|
221 See Also
|
Chris@87
|
222 --------
|
Chris@87
|
223 exp : Exponential function
|
Chris@87
|
224 log : Natural logarithm
|
Chris@87
|
225
|
Chris@87
|
226 References
|
Chris@87
|
227 ----------
|
Chris@87
|
228 .. [1] http://en.wikipedia.org/wiki/Napier_constant
|
Chris@87
|
229
|
Chris@87
|
230 """)
|
Chris@87
|
231
|
Chris@87
|
232 add_newdoc('numpy', 'inf',
|
Chris@87
|
233 """
|
Chris@87
|
234 IEEE 754 floating point representation of (positive) infinity.
|
Chris@87
|
235
|
Chris@87
|
236 Returns
|
Chris@87
|
237 -------
|
Chris@87
|
238 y : float
|
Chris@87
|
239 A floating point representation of positive infinity.
|
Chris@87
|
240
|
Chris@87
|
241 See Also
|
Chris@87
|
242 --------
|
Chris@87
|
243 isinf : Shows which elements are positive or negative infinity
|
Chris@87
|
244
|
Chris@87
|
245 isposinf : Shows which elements are positive infinity
|
Chris@87
|
246
|
Chris@87
|
247 isneginf : Shows which elements are negative infinity
|
Chris@87
|
248
|
Chris@87
|
249 isnan : Shows which elements are Not a Number
|
Chris@87
|
250
|
Chris@87
|
251 isfinite : Shows which elements are finite (not one of Not a Number,
|
Chris@87
|
252 positive infinity and negative infinity)
|
Chris@87
|
253
|
Chris@87
|
254 Notes
|
Chris@87
|
255 -----
|
Chris@87
|
256 Numpy uses the IEEE Standard for Binary Floating-Point for Arithmetic
|
Chris@87
|
257 (IEEE 754). This means that Not a Number is not equivalent to infinity.
|
Chris@87
|
258 Also that positive infinity is not equivalent to negative infinity. But
|
Chris@87
|
259 infinity is equivalent to positive infinity.
|
Chris@87
|
260
|
Chris@87
|
261 `Inf`, `Infinity`, `PINF` and `infty` are aliases for `inf`.
|
Chris@87
|
262
|
Chris@87
|
263 Examples
|
Chris@87
|
264 --------
|
Chris@87
|
265 >>> np.inf
|
Chris@87
|
266 inf
|
Chris@87
|
267 >>> np.array([1]) / 0.
|
Chris@87
|
268 array([ Inf])
|
Chris@87
|
269
|
Chris@87
|
270 """)
|
Chris@87
|
271
|
Chris@87
|
272 add_newdoc('numpy', 'infty',
|
Chris@87
|
273 """
|
Chris@87
|
274 IEEE 754 floating point representation of (positive) infinity.
|
Chris@87
|
275
|
Chris@87
|
276 Use `inf` because `Inf`, `Infinity`, `PINF` and `infty` are aliases for
|
Chris@87
|
277 `inf`. For more details, see `inf`.
|
Chris@87
|
278
|
Chris@87
|
279 See Also
|
Chris@87
|
280 --------
|
Chris@87
|
281 inf
|
Chris@87
|
282
|
Chris@87
|
283 """)
|
Chris@87
|
284
|
Chris@87
|
285 add_newdoc('numpy', 'nan',
|
Chris@87
|
286 """
|
Chris@87
|
287 IEEE 754 floating point representation of Not a Number (NaN).
|
Chris@87
|
288
|
Chris@87
|
289 Returns
|
Chris@87
|
290 -------
|
Chris@87
|
291 y : A floating point representation of Not a Number.
|
Chris@87
|
292
|
Chris@87
|
293 See Also
|
Chris@87
|
294 --------
|
Chris@87
|
295 isnan : Shows which elements are Not a Number.
|
Chris@87
|
296 isfinite : Shows which elements are finite (not one of
|
Chris@87
|
297 Not a Number, positive infinity and negative infinity)
|
Chris@87
|
298
|
Chris@87
|
299 Notes
|
Chris@87
|
300 -----
|
Chris@87
|
301 Numpy uses the IEEE Standard for Binary Floating-Point for Arithmetic
|
Chris@87
|
302 (IEEE 754). This means that Not a Number is not equivalent to infinity.
|
Chris@87
|
303
|
Chris@87
|
304 `NaN` and `NAN` are aliases of `nan`.
|
Chris@87
|
305
|
Chris@87
|
306 Examples
|
Chris@87
|
307 --------
|
Chris@87
|
308 >>> np.nan
|
Chris@87
|
309 nan
|
Chris@87
|
310 >>> np.log(-1)
|
Chris@87
|
311 nan
|
Chris@87
|
312 >>> np.log([-1, 1, 2])
|
Chris@87
|
313 array([ NaN, 0. , 0.69314718])
|
Chris@87
|
314
|
Chris@87
|
315 """)
|
Chris@87
|
316
|
Chris@87
|
317 add_newdoc('numpy', 'newaxis',
|
Chris@87
|
318 """
|
Chris@87
|
319 A convenient alias for None, useful for indexing arrays.
|
Chris@87
|
320
|
Chris@87
|
321 See Also
|
Chris@87
|
322 --------
|
Chris@87
|
323 `numpy.doc.indexing`
|
Chris@87
|
324
|
Chris@87
|
325 Examples
|
Chris@87
|
326 --------
|
Chris@87
|
327 >>> newaxis is None
|
Chris@87
|
328 True
|
Chris@87
|
329 >>> x = np.arange(3)
|
Chris@87
|
330 >>> x
|
Chris@87
|
331 array([0, 1, 2])
|
Chris@87
|
332 >>> x[:, newaxis]
|
Chris@87
|
333 array([[0],
|
Chris@87
|
334 [1],
|
Chris@87
|
335 [2]])
|
Chris@87
|
336 >>> x[:, newaxis, newaxis]
|
Chris@87
|
337 array([[[0]],
|
Chris@87
|
338 [[1]],
|
Chris@87
|
339 [[2]]])
|
Chris@87
|
340 >>> x[:, newaxis] * x
|
Chris@87
|
341 array([[0, 0, 0],
|
Chris@87
|
342 [0, 1, 2],
|
Chris@87
|
343 [0, 2, 4]])
|
Chris@87
|
344
|
Chris@87
|
345 Outer product, same as ``outer(x, y)``:
|
Chris@87
|
346
|
Chris@87
|
347 >>> y = np.arange(3, 6)
|
Chris@87
|
348 >>> x[:, newaxis] * y
|
Chris@87
|
349 array([[ 0, 0, 0],
|
Chris@87
|
350 [ 3, 4, 5],
|
Chris@87
|
351 [ 6, 8, 10]])
|
Chris@87
|
352
|
Chris@87
|
353 ``x[newaxis, :]`` is equivalent to ``x[newaxis]`` and ``x[None]``:
|
Chris@87
|
354
|
Chris@87
|
355 >>> x[newaxis, :].shape
|
Chris@87
|
356 (1, 3)
|
Chris@87
|
357 >>> x[newaxis].shape
|
Chris@87
|
358 (1, 3)
|
Chris@87
|
359 >>> x[None].shape
|
Chris@87
|
360 (1, 3)
|
Chris@87
|
361 >>> x[:, newaxis].shape
|
Chris@87
|
362 (3, 1)
|
Chris@87
|
363
|
Chris@87
|
364 """)
|
Chris@87
|
365
|
Chris@87
|
366 if __doc__:
|
Chris@87
|
367 constants_str = []
|
Chris@87
|
368 constants.sort()
|
Chris@87
|
369 for name, doc in constants:
|
Chris@87
|
370 s = textwrap.dedent(doc).replace("\n", "\n ")
|
Chris@87
|
371
|
Chris@87
|
372 # Replace sections by rubrics
|
Chris@87
|
373 lines = s.split("\n")
|
Chris@87
|
374 new_lines = []
|
Chris@87
|
375 for line in lines:
|
Chris@87
|
376 m = re.match(r'^(\s+)[-=]+\s*$', line)
|
Chris@87
|
377 if m and new_lines:
|
Chris@87
|
378 prev = textwrap.dedent(new_lines.pop())
|
Chris@87
|
379 new_lines.append('%s.. rubric:: %s' % (m.group(1), prev))
|
Chris@87
|
380 new_lines.append('')
|
Chris@87
|
381 else:
|
Chris@87
|
382 new_lines.append(line)
|
Chris@87
|
383 s = "\n".join(new_lines)
|
Chris@87
|
384
|
Chris@87
|
385 # Done.
|
Chris@87
|
386 constants_str.append(""".. const:: %s\n %s""" % (name, s))
|
Chris@87
|
387 constants_str = "\n".join(constants_str)
|
Chris@87
|
388
|
Chris@87
|
389 __doc__ = __doc__ % dict(constant_list=constants_str)
|
Chris@87
|
390 del constants_str, name, doc
|
Chris@87
|
391 del line, lines, new_lines, m, s, prev
|
Chris@87
|
392
|
Chris@87
|
393 del constants, add_newdoc
|