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)))
更多《机器学习》,关注专栏 ♬ ♬注:因为专栏不止我一位作者!
祝你一生平安!♥