python创建一个类似于国家象棋棋盘的0-1矩阵_机器学习 Numpy 06:习题前20题(带答案、注释)...

1. 导入numpy库并取别名为np

import numpy as np

2. 打印输出numpy的版本和配置信息

print(np.__version__)

np.show_config()

3. 创建长度为10的零向量

Z = np.zeros(10)

print(Z)

4. 获取数组所占内存大小

Z = np.zeros((10,10))

print(Z)

print(Z.size)

print(Z.itemsize)

print("%d bytes" % (Z.size * Z.itemsize))

5. 怎么用命令行获取numpy add函数的文档说明?

import numpy as np

np.info(np.add)

6. 创建一个长度为10的零向量,并把第五个值赋值为1

Z = np.zeros(10)

Z[4] = 1

print(Z)

7. 创建一个值域为10到49的向量

Z = np.arange(10,50)

print(Z)

8. 将一个向量进行反转

Z = np.arange(50)

Z = Z[::-1]

print(Z)

9. 创建一个3x3的矩阵,值域为0到8

Z = np.arange(9).reshape(3,3)

print(Z)

10. 从数组[1, 2, 0, 0, 4, 0]中找出非0元素的位置索引

nz = np.nonzero([1,2,0,0,4,0])

print(nz)

# nonzero将非0元素的索引打印了出来

11. 创建一个3x3的单位矩阵

import numpy as np

Z = np.eye(3)

print(Z)

12. 创建一个3x3x3的随机数组

Z = np.random.random((3,3,3))

print(Z)

13. 创建一个10x10的随机数组,并找出该数组中的最大值与最小值

Z = np.random.random((10,10))

Zmin, Zmax = Z.min(), Z.max()

print(Zmin, Zmax)

14. 创建一个长度为30的随机向量,并求它的平均值

Z = np.random.random(30)

m = Z.mean()

print(m)

15. 创建一个2维数组,该数组边界值为1,内部的值为0

Z = np.ones((10,10))

print(Z)

Z[1:-1,1:-1] = 0

print(Z)

# X[s0:e0,s1:e1]这是最通用的切片操作,

# 表示取 第0维 的第 s0 到 e0 个元素,继续取 第1维 的第 s1 到 e1 个元素(左闭右开)

16. 如何用0来填充一个数组的边界?

Z = np.ones((5,5))

Z = np.pad(Z, pad_width=2, mode='constant', constant_values=0)

print(Z)

# pad(array,pad_width,mode,**kwars)

# mode为填补类型,即怎样去填补,有“constant”,“edge”等模式,如果为constant模式,就得指定填补的值。

17. 下面表达式运行的结果是什么?

print(0 * np.nan) # nan参与的算数运算的结果必然是nan

print(np.nan == np.nan) # nan不能比较判断,输出为nan

print(np.inf > np.nan) # nan不能比较判断,输出为nan

print(np.nan - np.nan) # nan参与的算数运算的结果必然是nan

print(np.nan in set([np.nan])) #set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

print(0.3 == 3 * 0.1) # 浮点数与二进制的对应,浮点数不能完全精确的表示。计算机数据的存储实质上都是二进制格式的

# (提示: NaN = not a number, inf = infinity)

# (提示:NaN : 不是一个数,inf : 无穷)

18. 创建一个5x5的矩阵,且设置值1, 2, 3, 4在其对角线下面一行

Z= np.arange(4)

print(Z)

A = np.diag(1+np.arange(4),k=-1)

B = np.diag(1+np.arange(4),k=-2)

print(A)

print(B)

# 当 np.diag(array) 中

# array是一个1维数组时,结果形成一个以一维数组为对角线元素的矩阵

# array是一个二维矩阵时,结果输出矩阵的对角线元素

# k使得输出的矩阵对角线元素旁有几行为0

19. 创建一个8x8的国际象棋棋盘矩阵(黑块为0,白块为1)

Z = np.zeros((8,8),dtype=int)

print(Z)

Z[1::2,::2] = 1

Z[::2,1::2] = 1

print(Z)

# 数组中第一个元素表示行,第二个元素表示列,第三个元素表示步长

20. 思考一下形状为(6, 7, 8)的数组的形状,且第100个元素的索引(x, y, z)分别是什么?

print(np.unravel_index(100,(6,7,8)))

更多《机器学习》,关注专栏 ♬ ♬注:因为专栏不止我一位作者!

祝你一生平安!♥

你可能感兴趣的:(python创建一个类似于国家象棋棋盘的0-1矩阵_机器学习 Numpy 06:习题前20题(带答案、注释)...)