/var/log/messages

Oct 27, 2018 - 3 minute read - Comments - Python

100 numpy exercises

ゼロから作る、で紹介されていたので試しにやってみることに。

時間がアレなのでどこまでヤレるかわかりませんが。

>>> import numpy as np
>>> print(np.__version__)
1.12.1
>>> np.show_config()
lapack_info:
    libraries = ['lapack', 'lapack']
    library_dirs = ['/usr/lib']
    language = f77
lapack_opt_info:
    libraries = ['lapack', 'lapack', 'blas', 'blas']
    library_dirs = ['/usr/lib']
    language = c
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
openblas_lapack_info:
  NOT AVAILABLE
blas_info:
    libraries = ['blas', 'blas']
    library_dirs = ['/usr/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
atlas_3_10_blas_threads_info:
  NOT AVAILABLE
atlas_threads_info:
  NOT AVAILABLE
atlas_3_10_threads_info:
  NOT AVAILABLE
atlas_blas_info:
  NOT AVAILABLE
atlas_3_10_blas_info:
  NOT AVAILABLE
atlas_blas_threads_info:
  NOT AVAILABLE
openblas_info:
  NOT AVAILABLE
blas_mkl_info:
  NOT AVAILABLE
blas_opt_info:
    libraries = ['blas', 'blas']
    library_dirs = ['/usr/lib']
    language = c
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
blis_info:
  NOT AVAILABLE
atlas_info:
  NOT AVAILABLE
atlas_3_10_info:
  NOT AVAILABLE
lapack_mkl_info:
  NOT AVAILABLE
>>> z = np.zeros(10)
>>> print(z)
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
>>> np.info(np.add)
add(x1, x2[, out])

Add arguments element-wise.

Parameters
----------
x1, x2 : array_like
    The arrays to be added.  If ``x1.shape != x2.shape``, they must be
    broadcastable to a common shape (which may be the shape of one or
    the other).

Returns
-------
add : ndarray or scalar
    The sum of `x1` and `x2`, element-wise.  Returns a scalar if
    both  `x1` and `x2` are scalars.

Notes
-----
Equivalent to `x1` + `x2` in terms of array broadcasting.

Examples
--------
>>> np.add(1.0, 4.0)
5.0
>>> x1 = np.arange(9.0).reshape((3, 3))
>>> x2 = np.arange(3.0)
>>> np.add(x1, x2)
array([[  0.,   2.,   4.],
       [  3.,   5.,   7.],
       [  6.,   8.,  10.]])

>>> z = np.zeros(10)
>>> z[4] = 1
>>> print(z)
[ 0.  0.  0.  0.  1.  0.  0.  0.  0.  0.]
>>> z = np.arange(10,50)
>>> print(z)
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]
>>> z = z[::-1]
>>> print(z)
[49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25
 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10]
>>> z = np.arange(9).reshape(3,3)
>>> print(z)
[[0 1 2]
 [3 4 5]
 [6 7 8]]
>>> nz = np.nonzero([1,2,0,0,4,0])
>>> print(nz)
(array([0, 1, 4]),)
>>> z = np.eye(3)
>>> print(z)
[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]
>>> z = np.random.random((3,3,3))
>>> print(z)
[[[ 0.06205236  0.19099742  0.99456804]
  [ 0.60092545  0.82734294  0.14286132]
  [ 0.92146581  0.63564202  0.38872125]]

 [[ 0.07939687  0.96852618  0.8120449 ]
  [ 0.50250091  0.26503357  0.65948408]
  [ 0.35790514  0.92241605  0.4671903 ]]

 [[ 0.77499553  0.04178327  0.9047007 ]
  [ 0.35143498  0.76012792  0.08662569]
  [ 0.70430228  0.53533727  0.11666641]]]
>>> z = np.random.random((10,10))
>>> Zmin, Zmax = z.min(), z.max()
>>> print(Zmin, Zmax)
(0.025307743360206025, 0.98825794498330499)
>>> z = np.random.random(30)
>>> m = z.mean()
>>> print(m)
0.495190792994
>>> z = np.ones((10,10))
>>> print(z)
[[ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]]
>>> z[1:-1,1:-1] = 0
>>> print(z)
[[ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
 [ 1.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
 [ 1.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
 [ 1.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
 [ 1.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
 [ 1.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
 [ 1.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
 [ 1.  0.  0.  0.  0.  0.  0.  0.  0.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]]
>>> 0 * np.nan
nan
>>> np.nan == np.nan
False
>>> np.inf > np.nan
False
>>> np.nan - np.nan
nan
>>> 0.3 == 3 * 0.1
False
>>> z = np.diag(1+np.arange(4),k=-1)
>>> print(z)
[[0 0 0 0 0]
 [1 0 0 0 0]
 [0 2 0 0 0]
 [0 0 3 0 0]
 [0 0 0 4 0]]
>>> z = np.zeros((8,8),dtype=int)
>>> z[1::2,::2] = 1
>>> z[::2,1::2] = 1
>>> print(z)
[[0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]]
>>> print(np.unravel_index(100,(6,7,8)))
(1, 5, 4)
>>> z = np.tile(np.array([[0,1],[1,0]]),(4,4))
>>> print(z)
[[0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]]
>>> z = np.random.random((5,5))
>>> z
array([[ 0.63961068,  0.23124397,  0.67606005,  0.99600782,  0.47858815],
       [ 0.01860286,  0.8226178 ,  0.42067158,  0.29628887,  0.56521426],
       [ 0.88364213,  0.51160444,  0.77069063,  0.89541852,  0.67893452],
       [ 0.43324172,  0.61402699,  0.48005742,  0.47504794,  0.50494166],
       [ 0.27268807,  0.40511865,  0.56968093,  0.49625986,  0.58124904]])
>>> zmax, zmin = z.max(),z.min()
>>> zmax
0.99600782232727403
>>> zmin
0.018602860987813719
>>> z = (z - zmin)/(zmax - zmin)
>>> print(z)
[[ 0.63536389  0.21755681  0.67265587  1.          0.47061894]
 [ 0.          0.82260166  0.41136349  0.28410538  0.55924762]
 [ 0.88503671  0.50439848  0.76947407  0.89708533  0.6755968 ]
 [ 0.42422422  0.60918877  0.47212218  0.46699689  0.49758167]
 [ 0.25995899  0.39545102  0.56381755  0.48869918  0.57565308]]
>>> color = np.dtype([("r", np.ubyte, 1), ("g", np.ubyte, 1), ("b", np.ubyte, 1), ("a", np.ubyte, 1)])
>>> color
dtype([('r', 'u1'), ('g', 'u1'), ('b', 'u1'), ('a', 'u1')])
>>> z = np.dot(np.ones((5,3)), np.ones((3,2)))
>>> print(z)
[[ 3.  3.]
 [ 3.  3.]
 [ 3.  3.]
 [ 3.  3.]
 [ 3.  3.]]
>>> z = np.arange(11)
>>> z
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
>>> z[(3<z) & (z <=8)] *= -1
>>> z
array([ 0,  1,  2,  3, -4, -5, -6, -7, -8,  9, 10])

24 は略で。

というか

numpy て現時点で全部記憶せいと言われると駄目ッス。

TODO thinkpad x220 調達

comments powered by Disqus