Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_TinkoffBotTwitch-main/venv/lib/python3.8/site-packages/numpy/matlib.py
7756 views
1
import warnings
2
3
# 2018-05-29, PendingDeprecationWarning added to matrix.__new__
4
# 2020-01-23, numpy 1.19.0 PendingDeprecatonWarning
5
warnings.warn("Importing from numpy.matlib is deprecated since 1.19.0. "
6
"The matrix subclass is not the recommended way to represent "
7
"matrices or deal with linear algebra (see "
8
"https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). "
9
"Please adjust your code to use regular ndarray. ",
10
PendingDeprecationWarning, stacklevel=2)
11
12
import numpy as np
13
from numpy.matrixlib.defmatrix import matrix, asmatrix
14
# Matlib.py contains all functions in the numpy namespace with a few
15
# replacements. See doc/source/reference/routines.matlib.rst for details.
16
# Need * as we're copying the numpy namespace.
17
from numpy import * # noqa: F403
18
19
__version__ = np.__version__
20
21
__all__ = np.__all__[:] # copy numpy namespace
22
__all__ += ['rand', 'randn', 'repmat']
23
24
def empty(shape, dtype=None, order='C'):
25
"""Return a new matrix of given shape and type, without initializing entries.
26
27
Parameters
28
----------
29
shape : int or tuple of int
30
Shape of the empty matrix.
31
dtype : data-type, optional
32
Desired output data-type.
33
order : {'C', 'F'}, optional
34
Whether to store multi-dimensional data in row-major
35
(C-style) or column-major (Fortran-style) order in
36
memory.
37
38
See Also
39
--------
40
empty_like, zeros
41
42
Notes
43
-----
44
`empty`, unlike `zeros`, does not set the matrix values to zero,
45
and may therefore be marginally faster. On the other hand, it requires
46
the user to manually set all the values in the array, and should be
47
used with caution.
48
49
Examples
50
--------
51
>>> import numpy.matlib
52
>>> np.matlib.empty((2, 2)) # filled with random data
53
matrix([[ 6.76425276e-320, 9.79033856e-307], # random
54
[ 7.39337286e-309, 3.22135945e-309]])
55
>>> np.matlib.empty((2, 2), dtype=int)
56
matrix([[ 6600475, 0], # random
57
[ 6586976, 22740995]])
58
59
"""
60
return ndarray.__new__(matrix, shape, dtype, order=order)
61
62
def ones(shape, dtype=None, order='C'):
63
"""
64
Matrix of ones.
65
66
Return a matrix of given shape and type, filled with ones.
67
68
Parameters
69
----------
70
shape : {sequence of ints, int}
71
Shape of the matrix
72
dtype : data-type, optional
73
The desired data-type for the matrix, default is np.float64.
74
order : {'C', 'F'}, optional
75
Whether to store matrix in C- or Fortran-contiguous order,
76
default is 'C'.
77
78
Returns
79
-------
80
out : matrix
81
Matrix of ones of given shape, dtype, and order.
82
83
See Also
84
--------
85
ones : Array of ones.
86
matlib.zeros : Zero matrix.
87
88
Notes
89
-----
90
If `shape` has length one i.e. ``(N,)``, or is a scalar ``N``,
91
`out` becomes a single row matrix of shape ``(1,N)``.
92
93
Examples
94
--------
95
>>> np.matlib.ones((2,3))
96
matrix([[1., 1., 1.],
97
[1., 1., 1.]])
98
99
>>> np.matlib.ones(2)
100
matrix([[1., 1.]])
101
102
"""
103
a = ndarray.__new__(matrix, shape, dtype, order=order)
104
a.fill(1)
105
return a
106
107
def zeros(shape, dtype=None, order='C'):
108
"""
109
Return a matrix of given shape and type, filled with zeros.
110
111
Parameters
112
----------
113
shape : int or sequence of ints
114
Shape of the matrix
115
dtype : data-type, optional
116
The desired data-type for the matrix, default is float.
117
order : {'C', 'F'}, optional
118
Whether to store the result in C- or Fortran-contiguous order,
119
default is 'C'.
120
121
Returns
122
-------
123
out : matrix
124
Zero matrix of given shape, dtype, and order.
125
126
See Also
127
--------
128
numpy.zeros : Equivalent array function.
129
matlib.ones : Return a matrix of ones.
130
131
Notes
132
-----
133
If `shape` has length one i.e. ``(N,)``, or is a scalar ``N``,
134
`out` becomes a single row matrix of shape ``(1,N)``.
135
136
Examples
137
--------
138
>>> import numpy.matlib
139
>>> np.matlib.zeros((2, 3))
140
matrix([[0., 0., 0.],
141
[0., 0., 0.]])
142
143
>>> np.matlib.zeros(2)
144
matrix([[0., 0.]])
145
146
"""
147
a = ndarray.__new__(matrix, shape, dtype, order=order)
148
a.fill(0)
149
return a
150
151
def identity(n,dtype=None):
152
"""
153
Returns the square identity matrix of given size.
154
155
Parameters
156
----------
157
n : int
158
Size of the returned identity matrix.
159
dtype : data-type, optional
160
Data-type of the output. Defaults to ``float``.
161
162
Returns
163
-------
164
out : matrix
165
`n` x `n` matrix with its main diagonal set to one,
166
and all other elements zero.
167
168
See Also
169
--------
170
numpy.identity : Equivalent array function.
171
matlib.eye : More general matrix identity function.
172
173
Examples
174
--------
175
>>> import numpy.matlib
176
>>> np.matlib.identity(3, dtype=int)
177
matrix([[1, 0, 0],
178
[0, 1, 0],
179
[0, 0, 1]])
180
181
"""
182
a = array([1]+n*[0], dtype=dtype)
183
b = empty((n, n), dtype=dtype)
184
b.flat = a
185
return b
186
187
def eye(n,M=None, k=0, dtype=float, order='C'):
188
"""
189
Return a matrix with ones on the diagonal and zeros elsewhere.
190
191
Parameters
192
----------
193
n : int
194
Number of rows in the output.
195
M : int, optional
196
Number of columns in the output, defaults to `n`.
197
k : int, optional
198
Index of the diagonal: 0 refers to the main diagonal,
199
a positive value refers to an upper diagonal,
200
and a negative value to a lower diagonal.
201
dtype : dtype, optional
202
Data-type of the returned matrix.
203
order : {'C', 'F'}, optional
204
Whether the output should be stored in row-major (C-style) or
205
column-major (Fortran-style) order in memory.
206
207
.. versionadded:: 1.14.0
208
209
Returns
210
-------
211
I : matrix
212
A `n` x `M` matrix where all elements are equal to zero,
213
except for the `k`-th diagonal, whose values are equal to one.
214
215
See Also
216
--------
217
numpy.eye : Equivalent array function.
218
identity : Square identity matrix.
219
220
Examples
221
--------
222
>>> import numpy.matlib
223
>>> np.matlib.eye(3, k=1, dtype=float)
224
matrix([[0., 1., 0.],
225
[0., 0., 1.],
226
[0., 0., 0.]])
227
228
"""
229
return asmatrix(np.eye(n, M=M, k=k, dtype=dtype, order=order))
230
231
def rand(*args):
232
"""
233
Return a matrix of random values with given shape.
234
235
Create a matrix of the given shape and propagate it with
236
random samples from a uniform distribution over ``[0, 1)``.
237
238
Parameters
239
----------
240
\\*args : Arguments
241
Shape of the output.
242
If given as N integers, each integer specifies the size of one
243
dimension.
244
If given as a tuple, this tuple gives the complete shape.
245
246
Returns
247
-------
248
out : ndarray
249
The matrix of random values with shape given by `\\*args`.
250
251
See Also
252
--------
253
randn, numpy.random.RandomState.rand
254
255
Examples
256
--------
257
>>> np.random.seed(123)
258
>>> import numpy.matlib
259
>>> np.matlib.rand(2, 3)
260
matrix([[0.69646919, 0.28613933, 0.22685145],
261
[0.55131477, 0.71946897, 0.42310646]])
262
>>> np.matlib.rand((2, 3))
263
matrix([[0.9807642 , 0.68482974, 0.4809319 ],
264
[0.39211752, 0.34317802, 0.72904971]])
265
266
If the first argument is a tuple, other arguments are ignored:
267
268
>>> np.matlib.rand((2, 3), 4)
269
matrix([[0.43857224, 0.0596779 , 0.39804426],
270
[0.73799541, 0.18249173, 0.17545176]])
271
272
"""
273
if isinstance(args[0], tuple):
274
args = args[0]
275
return asmatrix(np.random.rand(*args))
276
277
def randn(*args):
278
"""
279
Return a random matrix with data from the "standard normal" distribution.
280
281
`randn` generates a matrix filled with random floats sampled from a
282
univariate "normal" (Gaussian) distribution of mean 0 and variance 1.
283
284
Parameters
285
----------
286
\\*args : Arguments
287
Shape of the output.
288
If given as N integers, each integer specifies the size of one
289
dimension. If given as a tuple, this tuple gives the complete shape.
290
291
Returns
292
-------
293
Z : matrix of floats
294
A matrix of floating-point samples drawn from the standard normal
295
distribution.
296
297
See Also
298
--------
299
rand, numpy.random.RandomState.randn
300
301
Notes
302
-----
303
For random samples from :math:`N(\\mu, \\sigma^2)`, use:
304
305
``sigma * np.matlib.randn(...) + mu``
306
307
Examples
308
--------
309
>>> np.random.seed(123)
310
>>> import numpy.matlib
311
>>> np.matlib.randn(1)
312
matrix([[-1.0856306]])
313
>>> np.matlib.randn(1, 2, 3)
314
matrix([[ 0.99734545, 0.2829785 , -1.50629471],
315
[-0.57860025, 1.65143654, -2.42667924]])
316
317
Two-by-four matrix of samples from :math:`N(3, 6.25)`:
318
319
>>> 2.5 * np.matlib.randn((2, 4)) + 3
320
matrix([[1.92771843, 6.16484065, 0.83314899, 1.30278462],
321
[2.76322758, 6.72847407, 1.40274501, 1.8900451 ]])
322
323
"""
324
if isinstance(args[0], tuple):
325
args = args[0]
326
return asmatrix(np.random.randn(*args))
327
328
def repmat(a, m, n):
329
"""
330
Repeat a 0-D to 2-D array or matrix MxN times.
331
332
Parameters
333
----------
334
a : array_like
335
The array or matrix to be repeated.
336
m, n : int
337
The number of times `a` is repeated along the first and second axes.
338
339
Returns
340
-------
341
out : ndarray
342
The result of repeating `a`.
343
344
Examples
345
--------
346
>>> import numpy.matlib
347
>>> a0 = np.array(1)
348
>>> np.matlib.repmat(a0, 2, 3)
349
array([[1, 1, 1],
350
[1, 1, 1]])
351
352
>>> a1 = np.arange(4)
353
>>> np.matlib.repmat(a1, 2, 2)
354
array([[0, 1, 2, 3, 0, 1, 2, 3],
355
[0, 1, 2, 3, 0, 1, 2, 3]])
356
357
>>> a2 = np.asmatrix(np.arange(6).reshape(2, 3))
358
>>> np.matlib.repmat(a2, 2, 3)
359
matrix([[0, 1, 2, 0, 1, 2, 0, 1, 2],
360
[3, 4, 5, 3, 4, 5, 3, 4, 5],
361
[0, 1, 2, 0, 1, 2, 0, 1, 2],
362
[3, 4, 5, 3, 4, 5, 3, 4, 5]])
363
364
"""
365
a = asanyarray(a)
366
ndim = a.ndim
367
if ndim == 0:
368
origrows, origcols = (1, 1)
369
elif ndim == 1:
370
origrows, origcols = (1, a.shape[0])
371
else:
372
origrows, origcols = a.shape
373
rows = origrows * m
374
cols = origcols * n
375
c = a.reshape(1, a.size).repeat(m, 0).reshape(rows, origcols).repeat(n, 0)
376
return c.reshape(rows, cols)
377
378