常用的線性代數(shù)庫-numpy
import numpy as np
if __name__ == '__main__':
print(np.__version__)
# python中自帶的列表
lst = [1, 2, 3]
# Python的列表本質(zhì)是一個數(shù)組谈为,是用來存放數(shù)據(jù)的喂窟,并不是用來進行科學(xué)計算的
lst[0] = "list"
print(lst)
# 聲明一個numpy的向量,numpy中只能存放一種數(shù)據(jù)類型
vec = np.array([1, 2, 3])
print(vec)
# 創(chuàng)建n維度的0向量
vec0 = np.zeros(5)
print(vec0)
# 創(chuàng)建單位向量
print(np.ones(5))
# 創(chuàng)建個N維度,值為M的向量
print(np.full(5, 666))
# 返回向量中有多少個元素
print(vec)
print("vec size = ", vec.size)
# 返回向量中的元素數(shù)量使用len的方式
print("vec size = ", len(vec))
# 進行指定順序的值的查看春畔,可以使用Python內(nèi)置的索引方式
print(vec[0]) # 第一個數(shù)字
print(vec[-1]) # 倒數(shù)第一個數(shù)字
print(vec[0:2]) # 返回第一個到第二個數(shù)字褐缠,也就是索引為0和1的值的nparray的對象
# 向量的運算, 向量的加政鼠,減,乘
vec2 = np.array([4, 5, 6])
print("{} + {} = {}".format(vec, vec2, vec + vec2))
print("{} - {} = {}".format(vec, vec2, vec - vec2))
print("{} * {} = {}".format(2, vec2, 2 * vec2))
# 向量的點乘, 不是數(shù)學(xué)上的計算點乘的結(jié)果
print("{} * {} = {}".format(vec, vec2, vec * vec2))
# 調(diào)用點乘送丰,需要使用dot的方法
print("{}.dot({}) = {}".format(vec, vec2, vec.dot(vec2)))
# 計算向量的模的長度
print(np.linalg.norm(vec))
# 計算vec的單位向量
print(vec / np.linalg.norm(vec))
# 注意這里的向量相除也是不會對0向量進行判斷的缔俄,所以需要自己去進行判斷