Matrix

#python学习之矩阵matrix 2018.4.18
# -*- coding: UTF-8 -*-

from numpy import *
import  numpy as np
import math
a=np.matrix('1 2 7;3 4 8;5 6 9')#矩阵的换行必须使用分号隔开,内部数据必须为字符串形式,元素之间必须以空格隔开
print(np.matrix([[1,2],[3,4]]))
m=np.asmatrix(a)#将输入的a解释为矩阵m,并修改m中某个值
m[0,0]=5
b=np.array([[1,5],[3,2]])#矩阵中的数据可以为数组对象
print(a)
print(b)
print(m)

#复制矩阵
n=m.copy()
print(n)
#检测一下m和n中所有对应元素是否相等,相等返回true.
# all要求所有元素相等 any只要有一个相等即可
c=(m==n).all()
d=(m==n).any()
print(c)
#行与列
print(m.all(axis=0))
print(m.all(axis=1))
#转化为float对象
print(m.astype(float))
#返回从小到大排序后的矩阵每行的数的索引构成的矩阵
print(m.argsort())
#<=12 返回12  >=32返回32
print(m.clip(12,32))

#矩阵对象的属性
# matrix.T transpose:返回矩阵的转置矩阵
# matrix.H hermitian (conjugate) transpose:返回复数矩阵的共轭元素矩阵
# matrix.I inverse:返回矩阵的逆矩阵
# matrix.A base array:返回矩阵基于的数组

# 矩阵对象的方法:
# all([axis, out]) :沿给定的轴判断矩阵所有元素是否为真(非0即为真)
# any([axis, out]) :沿给定轴的方向判断矩阵元素是否为真,只要一个元素为真则为真。
# argmax([axis, out]) :沿给定轴的方向返回最大元素的索引(最大元素的位置).
# argmin([axis, out]): 沿给定轴的方向返回最小元素的索引(最小元素的位置)
# argsort([axis, kind, order]) :返回排序后的索引矩阵
# astype(dtype[, order, casting, subok, copy]):将该矩阵数据复制,且数据类型为指定的数据类型
# byteswap(inplace) Swap the bytes of the array elements
# choose(choices[, out, mode]) :根据给定的索引得到一个新的数据矩阵(索引从choices给定)
# clip(a_min, a_max[, out]) :返回新的矩阵,比给定元素大的元素为a_max,小的为a_min
# compress(condition[, axis, out]) :返回满足条件的矩阵
# conj() :返回复数的共轭复数
# conjugate() :返回所有复数的共轭复数元素
# copy([order]) :复制一个矩阵并赋给另外一个对象,b=a.copy()
# cumprod([axis, dtype, out]) :返回沿指定轴的元素累积矩阵
# cumsum([axis, dtype, out]) :返回沿指定轴的元素累积和矩阵
# diagonal([offset, axis1, axis2]) :返回矩阵中对角线的数据
# dot(b[, out]) :两个矩阵的点乘
# dump(file) :将矩阵存储为指定文件,可以通过pickle.loads()或者numpy.loads()如:a.dump(‘d:\\a.txt’)
# dumps() :将矩阵的数据转存为字符串.
# fill(value) :将矩阵中的所有元素填充为指定的value
# flatten([order]) :将矩阵转化为一个一维的形式,但是还是matrix对象
# getA() :返回自己,但是作为ndarray返回
# getA1():返回一个扁平(一维)的数组(ndarray)
# getH() :返回自身的共轭复数转置矩阵
# getI() :返回本身的逆矩阵
# getT() :返回本身的转置矩阵
# max([axis, out]) :返回指定轴的最大值
# mean([axis, dtype, out]) :沿给定轴方向,返回其均值
# min([axis, out]) :返回指定轴的最小值
# nonzero() :返回非零元素的索引矩阵
# prod([axis, dtype, out]) :返回指定轴方型上,矩阵元素的乘积.
# ptp([axis, out]) :返回指定轴方向的最大值减去最小值.
# put(indices, values[, mode]) :用给定的value替换矩阵本身给定索引(indices)位置的值
# ravel([order]) :返回一个数组,该数组是一维数组或平数组
# repeat(repeats[, axis]) :重复矩阵中的元素,可以沿指定轴方向重复矩阵元素,repeats为重复次数
# reshape(shape[, order]) :改变矩阵的大小,如:reshape([2,3])
# resize(new_shape[, refcheck]) :改变该数据的尺寸大小
# round([decimals, out]) :返回指定精度后的矩阵,指定的位数采用四舍五入,若为1,则保留一位小数
# searchsorted(v[, side, sorter]) :搜索V在矩阵中的索引位置
# sort([axis, kind, order]) :对矩阵进行排序或者按轴的方向进行排序
# squeeze([axis]) :移除长度为1的轴
# std([axis, dtype, out, ddof]) :沿指定轴的方向,返回元素的标准差.
# sum([axis, dtype, out]) :沿指定轴的方向,返回其元素的总和
# swapaxes(axis1, axis2):交换两个轴方向上的数据.
# take(indices[, axis, out, mode]) :提取指定索引位置的数据,并以一维数组或者矩阵返回(主要取决axis)
# tofile(fid[, sep, format]) :将矩阵中的数据以二进制写入到文件
# tolist() :将矩阵转化为列表形式
# tostring([order]):将矩阵转化为python的字符串.
# trace([offset, axis1, axis2, dtype, out]):返回对角线元素之和
# transpose(*axes) :返回矩阵的转置矩阵,不改变原有矩阵
# var([axis, dtype, out, ddof]) :沿指定轴方向,返回矩阵元素的方差
# view([dtype, type]) :生成一个相同数据,但是类型为指定新类型的矩阵。