作业
1. 将np.arange(10)数组中的奇数全部都替换成-1。
#方法一
import numpy as np
a=np.arange(10)
a[a%2==1]=-1
a
array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])
#方法二
a[1:10:2]=-1
#方法三
np.where(a %2 ==1,-1,a)
2. 有一个4行4列的数组(比如:np.arange(16).reshape((4,4))),请将其中对角线的数取出来形成一个一维数组。提示(使用np.eye)。
k=np.arange(16).reshape((4,4))
k
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
print(k)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
b=[]
for i in range(4):
b.append(k[i][i])
b
[0, 5, 10, 15]
#方法二
np.eye(4,dtype=int)==1
k[np.eye(4,dtype=int)==1]
#方法三
np.diagonal(k)
#方法四
a3=np.where(np.eye(4,dtype=int)==1,k,-1)
a3[a3!=-1]
#取反方向对角线
a3=np.eye(4)
a3[::-1]
a3[:][::-1]