要机器学习,这方面内容不可少。
import numpy as np import time # 对比标准python实现和numpy实现的性能差异 def sum_trad(): start = time.time() X = range(1000000) Y = range(1000000) Z = [] for i in range(len(X)): Z.append(X[i] + Y[i]) return time.time() - start def sum_numpy(): start = time.time() X = np.arange(1000000) Y = np.arange(1000000) Z = X + Y return time.time() - start # print('time trade sum: ', sum_trad(), ' .time numpy sum: ', sum_numpy()) print('=========数组的创建和列表的转换===========') arr = np.array([2, 6, 5, 9], float) print(arr) print(type(arr)) print(arr.tolist()) print(list(arr)) print('=========数组的复制===========') arr1 = arr arr2 = arr.copy() arr[0] = 0 print(arr1) print(arr2) print('=========数组的同值填充===========') arr.fill(1) print(arr) print('=========随机选择元素来创建数组===========') print(np.random.permutation(3)) print(np.random.normal(0, 1, 5)) print(np.random.random(5)) print('=========单位矩阵的创建===========') print(np.identity(5, dtype=float)) print('=========创建数组,k条对角线上元素为1===========') print(np.eye(3, k=1, dtype=float)) print('=========创建数组,用1或0填充===========') print(np.ones((2,3), dtype=float)) print(np.zeros(6, dtype=int)) print('=========数组的创建,类型和维度和现有数组相同===========') arr = np.array([[13, 32, 31], [64, 25, 76]], float) print(np.zeros_like(arr)) print(np.ones_like(arr)) print('=========数组的创建, 合并一维数组===========') arr1 = np.array([1, 3, 2]) arr2 = np.array([3, 4, 6]) print(np.vstack([arr1, arr2])) print('=========随机从0到1之间均匀分布中选取元素创建数组===========') print(np.random.rand(2, 3)) print('=========多元正态分布创建数组===========') print(np.random.multivariate_normal([10, 0], [[3, 1], [1, 4]], size=[5,]))
PS C:\Users\aeonh> & C:/Python37/python.exe c:/test/ml.py =========数组的创建和列表的转换=========== [2. 6. 5. 9.] <class 'numpy.ndarray'> [2.0, 6.0, 5.0, 9.0] [2.0, 6.0, 5.0, 9.0] =========数组的复制=========== [0. 6. 5. 9.] [2. 6. 5. 9.] =========数组的同值填充=========== [1. 1. 1. 1.] =========随机选择元素来创建数组=========== [2 1 0] [-1.15120655 0.35107448 -0.47478187 0.67095854 0.68825847] [0.04596957 0.40655295 0.19235859 0.48460268 0.88771739] =========单位矩阵的创建=========== [[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.]] =========创建数组,k条对角线上元素为1=========== [[0. 1. 0.] [0. 0. 1.] [0. 0. 0.]] =========创建数组,用1或0填充=========== [[1. 1. 1.] [1. 1. 1.]] [0 0 0 0 0 0] =========数组的创建,类型和维度和现有数组相同=========== [[0. 0. 0.] [0. 0. 0.]] [[1. 1. 1.] [1. 1. 1.]] =========数组的创建, 合并一维数组=========== [[1 3 2] [3 4 6]] =========随机从0到1之间均匀分布中选取元素创建数组=========== [[0.38304875 0.4372066 0.91975504] [0.6885767 0.23416509 0.56332644]] =========多元正态分布创建数组=========== [[10.96439198 1.05927544] [12.75575406 -2.3237166 ] [13.5318655 1.29196728] [12.20432062 0.40086517] [ 9.23879038 0.24105831]]