【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化

文章目录

  • 前言
  • 一、NumPy基础训练
    • 1.1 创建一个长度为10的一维全为0的ndarray对象,并让第5个元素为1
    • 1.2 创建一个元素为从10到49的ndarray对象
    • 1.3 将第2题的所有元素位置反转
    • 1.4 创建一个10*10的ndarray对象并打印最大最小元素
    • 1.5 创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0
    • 1.6 创建一个每一行都是从0到4的5*5矩阵
    • 1.7 创建一个范围在0-1之间的长度为12的等差数列
    • 1.8 创建一个长度为10的随机数组并排序
    • 1.9 创建一个长度为10的随机数组并将最大值替换为0
  • 二、NumPy强化训练
    • 2.1 给定一个4维矩阵,求最后两维的和
    • 2.2 给定数组[1,2,3,4,5],在每个元素后插入3个0
    • 2.3 给定一个二维矩阵,交换其中两行元素
    • 2.4 创建一个长度为100000的随机数组,使用两种方法求3次方,并比较所用时间
    • 2.5 创建一个5 * 3的随机矩阵和一个3 * 2的随机矩阵,求矩阵积
    • 2.6 矩阵每一行的元素都减去该行的平均值
    • 2.7 打印如下矩阵
    • 2.8 正则化一个5*5随机矩阵
  • 结语
  • 相关导读

前言

大家好!我是初心,本期给大家带来的是 NumPy案例巩固强化练习题,共17道,亲测。

一、NumPy基础训练

1.1 创建一个长度为10的一维全为0的ndarray对象,并让第5个元素为1

n1 = np.zeros(10,dtype=np.int16)
n1[4] = 1
n1

1.2 创建一个元素为从10到49的ndarray对象

n2 = np.arange(10,50)
n2

1.3 将第2题的所有元素位置反转

n2[::-1]

1.4 创建一个10*10的ndarray对象并打印最大最小元素

n4 = np.random.random((10,10))
print(np.max(n4))
print(np.min(n4))

1.5 创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0

n5 = np.zeros((10,10),dtype=np.int16)
n5[[0,9]] = 1
n5[:,[0,9]] = 1
print(n5)

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第1张图片

1.6 创建一个每一行都是从0到4的5*5矩阵

n6 = np.array(range(0,5))
n6

1.7 创建一个范围在0-1之间的长度为12的等差数列

n7 = np.linspace(0,1,num=12)
n7

1.8 创建一个长度为10的随机数组并排序

n8 = np.random.random(10)
np.sort(n8)

1.9 创建一个长度为10的随机数组并将最大值替换为0

n9 = np.random.random(10)
n9[np.argmax(n9)] = 0
print(n9)

二、NumPy强化训练

2.1 给定一个4维矩阵,求最后两维的和

n1 = np.random.randint(1,10,(2,3,4,5)) # 四维数组
display(n1)
np.sum(n1,(2,3))
# axis = 0 表示第一个维度
# axis = 1 表示第二个维度
# axis = 2 表示第三个维度
# axis = 3 表示第四个维度

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第2张图片

2.2 给定数组[1,2,3,4,5],在每个元素后插入3个0

n = np.arange(1,6)
display(n)
n2 = np.zeros(17,dtype=np.int16)
display(n2)
n2[::4] = n
n2

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第3张图片

2.3 给定一个二维矩阵,交换其中两行元素

n = np.random.randint(1,10,(3,3))
display(n)
n = n[[1,0,2]] # 交换第一行和第二行
display(n)

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第4张图片

2.4 创建一个长度为100000的随机数组,使用两种方法求3次方,并比较所用时间

n = np.random.randint(0,10,100000)
%timeit n ** 3
%timeit np.power(n,3)

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第5张图片

2.5 创建一个5 * 3的随机矩阵和一个3 * 2的随机矩阵,求矩阵积

n1 = np.random.randint(0,10,(5,3))
n2 = np.random.randint(0,10,(3,2))
display(n1,n2)
np.dot(n1,n2)

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第6张图片

2.6 矩阵每一行的元素都减去该行的平均值

n = np.random.randint(0,10,(3,4))
display(n)
# 行平均值
n2 = np.mean(n,axis=1).reshape(3,1)
display(n2)
n - n2

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第7张图片

2.7 打印如下矩阵

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第8张图片

n = np.zeros((8,8),dtype = np.int16)
display(n)
n[::2,1::2] = 1
n[1::2,0::2] = 1
display(n)

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第9张图片

2.8 正则化一个5*5随机矩阵

n = np.random.randint(0,10,(5,5))
display(n)
min1 = np.min(n)
max1 = np.max(n)
n = (n - min1) / (max1 - min1)
display(n)

【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化_第10张图片

注:题目素材来自 ——《千锋教育》

结语

本期跟大家分享的就是这些题目了!希望大家可以多多实操练习,加强巩固,以便更好的掌握 NumPy 。

相关导读

文章直达 链接
上期回顾 【数据分析 - 基础入门之NumPy⑤】- NumPy基本操作 - 二
下期预告 【数据分析 - 基础入门之pandas篇①】- pandas基础入门 - 一

你可能感兴趣的:(Python数据分析,numpy,数据分析,数据挖掘)