第一次作业-Numpy

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

import numpy as np 
a = np.ones((10,10),)#创建10行10列、元素全部为1的数组
a[1:9:,[1,2,3,4,5,6,7,8]]=0#把边界除外小正方形全部设置为0
print(a)
[[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.]]

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 
a = np.array([[1,0,0,0],[0,2,0,0],[0,0,3,0],[0,0,0,4]])
print(a)
[[1 0 0 0]
 [0 2 0 0]
 [0 0 3 0]
 [0 0 0 4]]

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

复制代码
import numpy as np
a= np.random.rand(5,5)
print(a)
print(np.max(a))
print(np.min(a))
a[a == a.max()] = 1
a[a == a.min()] = 0
print(a)
复制代码
[[0.13368219 0.20164121 0.38107276 0.97456532 0.61810288]
 [0.74280005 0.13257202 0.33212161 0.39807921 0.14197626]
 [0.35122445 0.98329665 0.01377419 0.89591906 0.17114024]
 [0.05337176 0.35930239 0.46604812 0.39234525 0.73360945]
 [0.10030682 0.33208741 0.33214395 0.87590381 0.89386848]]
0.9832966483972565
0.013774190327720981
[[0.13368219 0.20164121 0.38107276 0.97456532 0.61810288]
 [0.74280005 0.13257202 0.33212161 0.39807921 0.14197626]
 [0.35122445 1.         0.         0.89591906 0.17114024]
 [0.05337176 0.35930239 0.46604812 0.39234525 0.73360945]
 [0.10030682 0.33208741 0.33214395 0.87590381 0.89386848]
posted @ 2019-09-25 19:30  former-boyfriend  阅读(164)  评论(0)    收藏  举报