03-02 Numpy练习题
egon新书python全套来袭请看:https://egonlin.com/book.html
numpy练习
import numpy as np
# 1、创建一个大小为10的空向量
# 2、创建一个大小为10的空向量,但是第五个值为1
# 3、创建一个10-49的ndarray数组
# 4、创建一个3x3的矩阵,其值在0-8之间
# 5、创建包含随机值的10x10数组,并且找到最小值和最大值
# 6、创建大小为30的随机向量,找到平均值
# 7、创建一个大小为100的随机数组,并对其进行排序
# 8、将一个float32的数组转换为int32位的数组
# 9、如何交换两行数组
# 10、创建一个边界值为1而内部都为0的数组
1、创建一个大小为10的空向量
arr = np.zeros(10)
arr
> array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
2、创建一个大小为10的空向量,但是第五个值为1
arr = np.zeros(10)
arr[4] = 1
arr
> array([0., 0., 0., 0., 1., 0., 0., 0., 0., 0.])
3、创建一个10-49的ndarray数组
arr = np.arange(10,50)
arr
> array([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])
4、创建一个3x3的矩阵,其值在0-8之间
arr = np.arange(9).reshape(3,3)
arr
> array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
5、创建包含随机值的10x10数组,并且找到最小值和最大值
arr = np.random.random((10,10))
zmin,zmax = arr.min(),arr.max()
print(zmin,zmax)
> 0.011169609398906433 0.9911674728361876
6、创建大小为30的随机向量,找到平均值
arr = [np.random.randint(30) for _ in range(30)]
np.mean(arr)
> 13.833333333333334
7、创建一个大小为100的随机数组,并对其进行排序
arr = [np.random.randint(100) for _ in range(100)]
arr.sort()
arr
> [0,
1,
4,
5,
5,
...
93,
97,
97,
99,
99]
8、将一个float32的数组转换为int32位的数组
Z = np.arange(10,dtype=np.float32)
Z = Z.astype(np.int32)
Z.dtype
> dtype('int32')
9、如何交换两行数组
arr = np.arange(25).reshape(5, 5)
arr[[ 0, 1 ]] = arr[[ 1, 0 ]]
arr
> array([[ 5, 6, 7, 8, 9],
[ 0, 1, 2, 3, 4],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
10、创建一个边界值为1而内部都为0的数组
Z = np.ones((10, 10))
Z[1:9, 1:9] = 0
Z
> array([[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.]])