第1次作业-Numpy练习

1.创建一个边界值为1而内部都是0的数组,图例如下:
[提示:]解此题可以先把所有值都设置为1,这是大正方形;其次,把边界除外小正方形全部设置为0。
本题用到numpy的切片原理。多维数组同样遵循x[start:stop:step]的原理。
[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.]

>>> import numpy as np
>>> Z = np.ones((10, 10))
>>> Z[1:9 , 1:9] = 0
>>> print(Z)

 

2.在数组主对角线上创建一个值为1,2,3,4的5x5矩阵,图例如下:

[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]

>>> import numpy as np
>>> Z = np.diag([1, 2, 3, 4,5])
>>> print (Z)

 

3.数组归一化操作
生成一个随机的5*5矩阵,找出最大值和最小值,然后把最大值和最小值分别用1和0表示,其他值则介于在0和1中间。

>>> import numpy as np
>>> a=np.random.random((5,5))
>>> zmin,zmax=a.min(),a.max()
>>> a
array([[0.22913187, 0.23453449, 0.66414599, 0.56885539, 0.72208001],
       [0.48844148, 0.14876833, 0.47382164, 0.10778985, 0.56634055],
       [0.3866183 , 0.95441825, 0.47012269, 0.50781147, 0.75481921],
       [0.26920394, 0.29367284, 0.95865544, 0.19176201, 0.54763223],
       [0.77558802, 0.28558687, 0.03488014, 0.73239424, 0.45709264]])
>>> np.where(a == np.max(a))
(array([3], dtype=int64), array([2], dtype=int64))
>>> np.where(a == np.min(a))
(array([4], dtype=int64), array([2], dtype=int64))
>>> a[3,2]=1
>>> a[4,2]=0
>>> a
array([[0.22913187, 0.23453449, 0.66414599, 0.56885539, 0.72208001],
       [0.48844148, 0.14876833, 0.47382164, 0.10778985, 0.56634055],
       [0.3866183 , 0.95441825, 0.47012269, 0.50781147, 0.75481921],
       [0.26920394, 0.29367284, 1.        , 0.19176201, 0.54763223],
       [0.77558802, 0.28558687, 0.        , 0.73239424, 0.45709264]])

 

posted @ 2019-09-25 20:29  黎达廷  阅读(205)  评论(0编辑  收藏  举报