【学习笔记】100道NumPy练习题(1-20题)

#100道NumPy练习题

#一、数据创建与基本操作
#1.创建一个长度为10的一维全零数组。

import numpy as np
a = np.zeros(10,dtype = int)
print(a)
[0 0 0 0 0 0 0 0 0 0]
#2.创建一个3×3的二维全1数组。
import numpy as np
a = np.ones((3,3),dtype = int)
print(a)
[[1 1 1]
 [1 1 1]
 [1 1 1]]
#3.创建一个5×5的单位矩阵。
import numpy as np
a = np.eye(5,dtype = int)
print(a)
[[1 0 0 0 0]
 [0 1 0 0 0]
 [0 0 1 0 0]
 [0 0 0 1 0]
 [0 0 0 0 1]]
#4.创建一个人0到9的一维数组。
import numpy as np
a = np.arange(10)
print(a)
[0 1 2 3 4 5 6 7 8 9]
#5.创建一个从10到49的一维数组。
import numpy as np
a = np.arange(10,50)
print(a)
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49]
#6.创建一个包含20个元素的等差数列,从0到1。
import numpy as np
a = np.linspace(0,1,20)
print(a)
[0.         0.05263158 0.10526316 0.15789474 0.21052632 0.26315789
 0.31578947 0.36842105 0.42105263 0.47368421 0.52631579 0.57894737
 0.63157895 0.68421053 0.73684211 0.78947368 0.84210526 0.89473684
 0.94736842 1.        ]
#7.创建一个3×3的随机数组(值在0-1之间)。
import numpy as np
a = np.random.rand(3,3)
print(a)
[[0.57561549 0.35624582 0.98400423]
 [0.64519475 0.46653773 0.61003991]
 [0.44659391 0.23761659 0.02538453]]
#8.创建一个10×10的随机数组并找到最大值和最小值。
import numpy as np
a = np.random.rand(10,10)
print(a)
max_a = np.max(a)
min_a = np.min(a)
print("最大值",max_a)
print("最小值",min_a)
[[0.14997483 0.63146586 0.1515143  0.77205867 0.51239466 0.45637962
  0.71376739 0.50984618 0.81385418 0.25653962]
 [0.5863527  0.34428441 0.39445984 0.76218926 0.94851103 0.41088232
  0.1673427  0.95369732 0.37721195 0.60089694]
 [0.06956781 0.5231878  0.20054078 0.84368206 0.41675891 0.29751243
  0.17624232 0.61983447 0.10675026 0.15449083]
 [0.14976148 0.53685153 0.00249188 0.63762313 0.8652136  0.73729956
  0.42241523 0.60345739 0.73951732 0.75822322]
 [0.95324238 0.32313976 0.21753265 0.29152207 0.31350766 0.56223066
  0.56463936 0.64372726 0.62980919 0.74284169]
 [0.42765036 0.75573479 0.64096646 0.36281539 0.03419416 0.69813575
  0.0407868  0.23903913 0.83423034 0.87716584]
 [0.91358497 0.93725362 0.98913806 0.67757666 0.88238782 0.06181928
  0.66907977 0.90266313 0.54696334 0.26477886]
 [0.38622505 0.14717697 0.44613206 0.16375107 0.38480433 0.26630512
  0.51965354 0.99665215 0.44909775 0.22183136]
 [0.38076238 0.2233892  0.28017835 0.67772286 0.10162285 0.5099242
  0.00618366 0.93715355 0.41136914 0.33461806]
 [0.81723663 0.33080414 0.31269336 0.39252636 0.50806907 0.58543334
  0.2291617  0.47380334 0.93941091 0.02510199]]
最大值 0.9966521458900903
最小值 0.002491883128432848
#9.创建一个8×8的棋盘式数组(0黑,1白相间)。
import numpy as np
a = np.zeros((8,8),dtype = int)
a[1::2,::2] = 1  #奇数行
a[::2,1::2] = 1  #偶数行
print(a)
[[0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]]
#10.创建一个自定义的5×5数组并打印其数据类型。
import numpy as np
a = np.array([[1,2,3,4,5],
              [6,7,8,9,10],
              [11,12,13,14,15],
              [16,17,18,19,20],
              [21,22,23,24,25]])
print(a)
print(a.dtype)
[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]
 [21 22 23 24 25]]
int64
#二、数组索引与切片
#11.创建一个10×10数组,并提取第3行第5列的元素。
import numpy as np
a = np.arange(100).reshape(10,10)
print(a)
#提取第3行第5列的元素
b = a[2,4]
print(b)
[[ 0  1  2  3  4  5  6  7  8  9]
 [10 11 12 13 14 15 16 17 18 19]
 [20 21 22 23 24 25 26 27 28 29]
 [30 31 32 33 34 35 36 37 38 39]
 [40 41 42 43 44 45 46 47 48 49]
 [50 51 52 53 54 55 56 57 58 59]
 [60 61 62 63 64 65 66 67 68 69]
 [70 71 72 73 74 75 76 77 78 79]
 [80 81 82 83 84 85 86 87 88 89]
 [90 91 92 93 94 95 96 97 98 99]]
24
#12.提取一个数组的所有偶数索引元素。
import numpy as np
a = np.array([0,1,2,3,4,5,6,7,8,9])
b = a[::2]  #从0开始,步长为2。
print(b)
[0 2 4 6 8]
#13.将一个数据的所有大于5的元素替换为1,其余为0。
import numpy as np
a = np.array([0,1,2,3,4,5,6,7,8,9])
b = np.where(a>5,1,0)
print(b)
[0 0 0 0 0 0 1 1 1 1]
#14.提取一个二维数据的第2列。
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = a[:,1]
print(b)
[2 5 8]
#15.反转一个一维数组。
import numpy as np
a = np.arange(10)
print(a)
b = a[::-1]
print(b)
[0 1 2 3 4 5 6 7 8 9]
[9 8 7 6 5 4 3 2 1 0]
#16.反转一个二维数组的行。
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
b = a[::-1,:]
print(b)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[7 8 9]
 [4 5 6]
 [1 2 3]]
#17.反转一个二维数组的列。
import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
b = a[:,::-1]
print(b)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[3 2 1]
 [6 5 4]
 [9 8 7]]
#18.创建一个10×10数组 并提取其中3×3的子数组。
import numpy as np
a = np.arange(100).reshape(10,10)
print(a)
b = a[1:4,2:5]
print(b)
[[ 0  1  2  3  4  5  6  7  8  9]
 [10 11 12 13 14 15 16 17 18 19]
 [20 21 22 23 24 25 26 27 28 29]
 [30 31 32 33 34 35 36 37 38 39]
 [40 41 42 43 44 45 46 47 48 49]
 [50 51 52 53 54 55 56 57 58 59]
 [60 61 62 63 64 65 66 67 68 69]
 [70 71 72 73 74 75 76 77 78 79]
 [80 81 82 83 84 85 86 87 88 89]
 [90 91 92 93 94 95 96 97 98 99]]
[[12 13 14]
 [22 23 24]
 [32 33 34]]
#19.使用布尔索引提取数组中大于5的元素。
import numpy as np
a = np.arange(10)
b = a > 5
arr = a[b]
print(arr)
[6 7 8 9]
#20.使用花式索引从数组中提取特定位置的元素。
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9])
b = [0,2,4,6]
print(a[b])
[1 3 5 7]

说明:上述题目,是在Jupyter Notebook上运行的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值