0
点赞
收藏
分享

微信扫一扫

100_Numpy_exercises刷完确保掌握基本numpy知识点

我阿霆哥 2022-04-26 阅读 65
python

题目来源:

GitHub - rougier/numpy-100: 100 numpy exercises (with solutions)

 

This is a collection of exercises that have been collected in the numpy mailing list, on stack overflow and in the numpy documentation. The goal of this collection is to offer a quick reference for both old and new users but also to provide a set of exercises for those who teach.

If you find an error or think you've a better way to solve some of them, feel free to open an issue at GitHub - rougier/numpy-100: 100 numpy exercises (with solutions).

File automatically generated. See the documentation to update questions/answers/hints programmatically.

Run the initialize.py module, then for each question you can query the answer or an hint with hint(n) or answer(n) for n question number.

In [1]:

%run initialise.py

1. Import the numpy package under the name np (★☆☆)

In [2]:

import numpy as np

2. Print the numpy version and the configuration (★☆☆)

In [3]:

import numpy as np

 
1.21.5 <function show at 0x000001E1DC0981F0>

3. Create a null vector of size 10 (★☆☆)

In [4]:

null = np.zeros(10)
null

Out[4]:

array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

4. How to find the memory size of any array (★☆☆)

In [6]:

print(null.size*null.itemsize)
80

In [7]:

print(null.size)   #数组大小
 

Out[7]:

10

In [8]:

print(null.itemsize)  #元素所占内存

Out[8]:

8

5. How to get the documentation of the numpy add function from the command line? (★☆☆)

In [9]:

np.info(np.add)
#np.add?  笔记本支持
add(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])

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 becomes the shape of the output).
out : ndarray, None, or tuple of ndarray and None, optional
    A location into which the result is stored. If provided, it must have
    a shape that the inputs broadcast to. If not provided or None,
    a freshly-allocated array is returned. A tuple (possible only as a
    keyword argument) must have length equal to the number of outputs.
where : array_like, optional
    This condition is broadcast over the input. At locations where the
    condition is True, the `out` array will be set to the ufunc result.
    Elsewhere, the `out` array will retain its original value.
    Note that if an uninitialized `out` array is created via the default
    ``out=None``, locations within it where the condition is False will
    remain uninitialized.
**kwargs
    For other keyword-only arguments, see the
    :ref:`ufunc docs <ufuncs.kwargs>`.

Returns
-------
add : ndarray or scalar
    The sum of `x1` and `x2`, element-wise.
    This is 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.]])

The ``+`` operator can be used as a shorthand for ``np.add`` on ndarrays.

>>> x1 = np.arange(9.0).reshape((3, 3))
>>> x2 = np.arange(3.0)
>>> x1 + x2
array([[ 0.,  2.,  4.],
       [ 3.,  5.,  7.],
       [ 6.,  8., 10.]])

6. Create a null vector of size 10 but the fifth value which is 1 (★☆☆)

In [10]:

arr = np.zeros(10)   #np.array([0., 0., 0., 0., 1., 0., 0., 0., 0., 0.])
arr[4] = 1
arr
 

Out[10]:

array([0., 0., 0., 0., 1., 0., 0., 0., 0., 0.])

7. Create a vector with values ranging from 10 to 49 (★☆☆)

In [11]:

v = np.array(range(10,50))    #np.arange(10,50)
v
 

Out[11]:

array([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])

8. Reverse a vector (first element becomes last) (★☆☆)

In [13]:

v = np.arange(50)
v = v[::-1]
v
 

Out[13]:

array([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,  9,  8,  7,  6,  5,  4,  3,  2,  1,  0])

9. Create a 3x3 matrix with values ranging from 0 to 8 (★☆☆)

In [14]:


v = np.arange(9).reshape(3,3)
v
 

Out[14]:

array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

10. Find indices of non-zero elements from [1,2,0,0,4,0] (★☆☆)

In [15]:

v= np.nonzero([1,2,0,0,4,0])
v

Out[15]:

(array([0, 1, 4], dtype=int64),)

11. Create a 3x3 identity matrix (★☆☆)

In [17]:

v = np.eye(3)   #单位矩阵
v
 

Out[17]:

array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

12. Create a 3x3x3 array with random values (★☆☆)

In [19]:

v = np.random.rand(3,3,3)   #np.random.random(3,3,3) 
v
 

Out[19]:

array([[[0.73527078, 0.60789469, 0.32748788],
        [0.59787423, 0.13201964, 0.29240533],
        [0.68464728, 0.51757985, 0.86813884]],

       [[0.07694192, 0.16003625, 0.87576183],
        [0.24639116, 0.95007728, 0.87826383],
        [0.91503418, 0.600087  , 0.48932514]],

       [[0.85289026, 0.92871151, 0.18701809],
        [0.27678334, 0.71768381, 0.56805309],
        [0.3233431 , 0.23818919, 0.89645149]]])

In [21]:

v = np.random.random((3,3,3))
v

Out[21]:

array([[[0.70226196, 0.85231412, 0.10218497],
        [0.28434651, 0.3388226 , 0.41760094],
        [0.48735007, 0.10301863, 0.70954303]],

       [[0.0985171 , 0.23593811, 0.20304492],
        [0.24775831, 0.66249119, 0.83378528],
        [0.39347008, 0.37838472, 0.57364063]],

       [[0.2369906 , 0.68533942, 0.28761067],
        [0.37078408, 0.39534982, 0.11435091],
        [0.59695905, 0.12687256, 0.29725503]]])

13. Create a 10x10 array with random values and find the minimum and maximum values (★☆☆)

In [22]:

v = np.random.rand(10,10)
print(np.max(v),np.min(v))
 
0.9895919394060008 0.005890203026950314
举报

相关推荐

0 条评论