numpy作业

阅读 31

2022-03-23

第1题 创建一个8*8的二维ndarray对象A。要求 A为上三角矩阵...如图

观察后不难看出这是一个由1-127的64个数字组成的二维数组,保留上三角的元素得到的,

有两种方法得到这个步长为2的数列,

A = np.arange(1,129,2)

或者a = np.linspace(1,127,64)

import numpy as np

a = np.arange(1,129,2)
print(a)
b = a.reshape(8,8)
print(b)

 

然后就是如何把它变成上三角阵

numpy中,np.triu(a)是将矩阵变成上三角阵

np.tril(a)是将矩阵变成下三角阵

 第4题 请打印出姓Smith并且年龄大于14岁的同学的入学日期

 这道题更像是一道SQL题,采用的是数组切片的方法

import numpy as np

data = np.array([['Bob','Smith','12','2019-02-01'],
                 ['Joe','Lawrence','13','2018-03-07'],
                 ['Roy','Ratner','12','2019-02-05'],
                 ['Rita','Smith','14','2017-02-16'],
                 ['Alice','Holmes','11','2020-02-29'],
                 ['Wool','Smith','15','2016-02-14']])
Smith_tuples = data[(data[:,1]=='Smith')]
agedSmith_tuples = data[(data[:,2].astype('int')>14)]
#print(Smith_tuples)
#print(agedSmith_tuples)
print(agedSmith_tuples[:,3])

 

 注意,在最后输出的时候不能直接print(agedSmith_tuples[3]),因为agedSmith_tuples依然是二维数组,如果我们把年龄选为>=14,则会出现两个入学日期。

精彩评论(0)

0 0 举报