numpy中矩阵

矩阵

Numpy中矩阵是ndarray的子类, 矩阵是二维的

Key_Function

  1. 将字符串转为矩阵, 矩阵的行与行之间用分号隔开, 行间元素用空格隔开

  2. 将Numpy的数组(如np.arange(9))转成矩阵

T属性: 获得矩阵的转置

I属性: 获得矩阵的逆矩阵

Code

import numpy as np

A = np.mat(‘1 2 3; 4 5 6; 7 8 9‘)
print(A)
‘‘‘
[[1 2 3]
 [4 5 6]
 [7 8 9]]
‘‘‘

print(A.T)  # 矩阵的转置
‘‘‘
[[1 4 7]
 [2 5 8]
 [3 6 9]]
‘‘‘

print(A.I)  # 矩阵的逆矩阵
‘‘‘
[[ -4.50359963e+15   9.00719925e+15  -4.50359963e+15]
 [  9.00719925e+15  -1.80143985e+16   9.00719925e+15]
 [ -4.50359963e+15   9.00719925e+15  -4.50359963e+15]]
‘‘‘

print(np.mat(np.arange(9).reshape(3, 3)))   # 将ndarray转成矩阵

从已有的矩阵创建新矩阵

Key_Function

np.eye函数, 创建单位矩阵

矩阵与标量相乘, 等于矩阵的各个元素分别与标量相乘

np.bmat函数, 创建复合矩阵, 类似与np.mat, 输入的是代表矩阵的字符串, 而不是代表数字的字符串

Code

import numpy as np

A =np.eye(2)
print(A)
‘‘‘
[[ 1.  0.]
 [ 0.  1.]]
‘‘‘

B = 2 * A
print(B)
‘‘‘
[[ 2.  0.]
 [ 0.  2.]]
‘‘‘

print(np.bmat("A B; A B"))
‘‘‘
[[ 1.  0.  2.  0.]
 [ 0.  1.  0.  2.]
 [ 1.  0.  2.  0.]
 [ 0.  1.  0.  2.]]
‘‘‘

矩阵的通用函数

Key_Function

np.zeros_like函数, 将参数数组的元素全部设为0

flat属性, 是一个扁平迭代器, 将数组设置为1维, 并将各元素的值设置为设定值

np.frompyfunc函数, 创建通用函数, 可以将一组指定的操作封装成一个函数

Code

import numpy as np

def ultimate_answer(a):
    result = np.zeros_like(a)    # 创建一个与a形状相同, 并且元素全部为0的数组
    result.flat = 42    # flat属性提供一个扁平迭代器, 逐个将数组各元素设置为设定的值
    return result

ufunc = np.frompyfunc(ultimate_answer, 1, 1)    # 指定输入的参数为1, 输出的参数个数也是1
print(ufunc(np.arange(4)))
# [array(42) array(42) array(42) array(42)]

print(ufunc(np.arange(4).reshape(2, 2)))
‘‘‘
[[array(42) array(42)]
 [array(42) array(42)]]
‘‘‘

通用函数的方法

通用函数有四个方法, reduce, accumulate, reduceat, outer

这些方法只对输入两个参数, 输出一个参数的ufunc对象有效

Key_Function

reduce函数, 沿着指定的轴, 在连续的数组元素之间递归调用通用函数

accumulate函数, 将reduce函数的中间值存在一个数组中返回

reduceat函数, 按照索引, 返回索引范围内的reduce结果

Code

import numpy as np

a = np.arange(9)
print(a)
# [0 1 2 3 4 5 6 7 8]
print(np.add(a, a)) # np.add 需要两个输入参数, 一个输出参数
# [ 0  2  4  6  8 10 12 14 16]
print(np.add.reduce(a)) # 沿着指定的轴, 对连续的数组元素递归地调用reduce
# 36

print(np.add.accumulate(a)) # 递归的输入数组, 与reduce不同, 它会将中间运算结果存储并返回
# [ 0  1  3  6 10 15 21 28 36]

# reduceat函数解析
print(np.add.reduceat(a, [0, 5, 2, 7]))
# [10  5 20 15]
print(np.add.reduce(a[0:5]))    # 0小于5, 返回reducea[0:5]的结果
# 10
print(a[5])
# 5
print(np.add.reduce(a[2:7]))
# 20
print(a[7])
# 7

# outer方法
print(np.add.outer(np.arange(3), a))    # 返回一个数组,它的秩等于输入的两数组的秩的和
‘‘‘
[[ 0  1  2  3  4  5  6  7  8]
 [ 1  2  3  4  5  6  7  8  9]
 [ 2  3  4  5  6  7  8  9 10]]
‘‘‘

原文地址:https://www.cnblogs.com/draven123/p/11397450.html

时间: 2024-10-13 10:30:57

numpy中矩阵的相关文章

numpy中矩阵转置

Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit ( Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> a = num

Numpy中使用矩阵

http://blog.csdn.net/pipisorry/article/details/39088003 Numpy是Python中的一个矩阵计算包,功能类似于MATLAB的矩阵计算. 具体参见http://www.numpy.org/.安装Pythonxy时已经包含了numpy包及其依赖包. (1) 定义矩阵 >>> from numpy import * >>> a = array([[1,2.2,3],[4,5,6]]) >>> a.ndi

Python - Y.shape[n,m];Numpy中的矩阵合并

The shape attribute for numpy arrays returns the dimensions of the array. If Y has n rows and m columns, then Y.shape is (n,m). So Y.shape[0] is n. In [46]: Y = np.arange(12).reshape(3,4) In [47]: Y Out[47]: array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8,

Python Numpy中的几个矩阵乘法

数学上的内积.外积和叉积 内积 也即是:点积.标量积或者数量积 从代数角度看,先对两个数字序列中的每组对应元素求积,再对所有积求和,结果即为点积.从几何角度看,点积则是两个向量的长度与它们夹角余弦的积. 具体解释 外积 也即是:张量积 在线性代数中一般指两个向量的张量积,其结果为一矩阵,也就是矩阵乘法 具体解释 叉积 也即是:向量积 叉积axb得到的是与a和b都垂直的向量 具体解释 Numpy中的矩阵乘法 np.dot() 对于二维矩阵,计算真正意义上的矩阵乘积:对于一维矩阵,计算两者的内积.(

numpy中数组(矩阵)的乘法

我们知道在处理数据的时候,使用矩阵间的运算将会是方便直观的.matlab有先天的优势,算矩阵是它的专长.当然我们用python,经常要用到的可能是numpy这个强大的库. 矩阵有两种乘法,点乘和对应项相乘(element-wise product).在numpy中应该怎么实现呢,看看下面的例子就明白了. ## A = B = array([[1, 2], ## [3, 4]]) >>>A = np.array([[1,2],[3,4]]) >>>B = np.array

numpy中的matrix和array

Preface 在相关聚类算法的实现过程中,用python语言实现,会经常出现array和matrix的混淆,这里做个总结. array数组 numpy中最基本(默认)的类型是array,他的相关操作都是按元素操作的即用作数值计算当中(按元素操作有+,-,,/,*等).相乘举例: from numpy import * >>> a=array([1,2]) >>> a array([1, 2]) >>> b=array([2,3]) >>&

[笔记]numpy中的tile与kron的用法

numpy中提供了不少数学中矩阵的运算.构造函数. 闭上眼睛想一想,发现其中常用的也就是那么几个:cos, sin, mean, dot, max,min, outer,argsort,ones,zeros,arrange,reshape,fft---等. 想了半天,可以也不超过30个左右常用函数. 但是numpy的确博大精深:查看文档发现有大概586个方法或属性! 今天,我就记录一下numpy中,矩阵运算tile与kron的用处之一吧. 确切的讲,是谈论的在向量化运算方面的用处. 记得高等代数

numpy中的ndarray方法和属性

原文地址 NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数组,而这个一维数组中每个元素又是一个一维数组.所以这个一维数组就是NumPy中的轴(axes),而轴的数量--秩,就是数组的维数. Numpy库中的矩阵模块为ndarray对象,有很多属性:T,data, dtype,flags,flat,imag,real,size, itemsize,

numpy中matrix的特殊属性

一.matrix特殊属性解释 numpy中matrix有下列的特殊属性,使得矩阵计算更加容易 摘自 NumPy Reference Release 1.8.1 1.1 The N-dimensional array (ndarray) An ndarray is a (usually fixed-size) multidimensional container of items of the same type and size. 摘自 NumPy Reference Release 1.9.1