这是在学习Python的时候做的笔记,有些时间了,大概是按照一本挺实用的入门书籍学的,我学习编程的思路一般是掌握基础的变量类型,语法-分支结构 函数调用 类创建 结构体定义,记录一些简单的实例,剩下的就是需要用什么百度现学。
对我来说python的优势是,没有类型要求,不用声明,没有指针,万能数组,库很强大。
以前已知使用matlab做矩阵的运算,现在没想到python中也有这个库,功能还挺全的
代码
from numpy import *
import numpy as np
# 两种引用差很多 这种才能完全引用 最上面的只是函数
# 使用array函数创建时,参数必须是由方括号括起来的列表,而不能使用多个数值作为参数调用array。
# 可以在创建时显式指定数组中元素的类型 dtype 可作为可选参数
a1 = array([1, 2, 3])
a2 = array([9, 8, 7])
a3 = a1 + a2
a4 = a1 * 2
a5 = a1 ** 2
a6 = a1 * a2 # 乘法 平方 点乘
# 基本数据选择
b1 = array([[1, 2, 3], [4, 5, 6]])
print(str(b1[0])) # 第一行
print(str(b1[0][0])) # 第一个元素 b1[0, 0]一样的
print(b1[:, 1:]) # 选择维度的方法同原操作类型 : 可使用变量定义
# 常用的生成矩阵函数
c1 = ones((2, 3)) # 1矩阵
c2 = zeros((2, 2)) # 0 矩阵
c3 = full((3, 4), 7) # 满矩阵 7
c4 = eye(3) # 对角矩阵
c5 = arange(10, 30, 5) # 数列数组 差值为5 arange(6)为[0,1,2,3,4,5]
# arrange精度有限 所以使用logspace
c6 = logspace(0, 1, 100, base=10) # 100个0-1的数字 基础加10(可选参数)
# random自带许多分布的api
c7 = np.random.rand((2, 3)) # 均匀分布随机数组
c8 = random.randint(1, 100, [5, 5]) # 5*5 1-100的随机整数
c9 = random.randn(3, 3) # 正态分布
# 矩阵变换
# 矩阵维度变换
d1 = arange(6).reshape((2, 3)) # 产生[0,..5]变为2行3列
# 矩阵的拓展 tile
x = mat([1, 2, 3])
tile(x, (2, 3)) # 拓展为2行3列
# 创建矩阵 上文的好像都是数组。。。。
m = mat([0, 1, 2]) # 真的矩阵 取值方法只有m[0,1]
print(m[0, 1])
list = [3, 4, 5, 6] # 列表可以转换为矩阵
m = mat(list)