随笔 - 290  文章 - 10  评论 - 85  2

大学学的高数都还给体育老师了。

下面我们快速回忆一下矩阵的常用运算

不用循环对数组的元素进行批量操作,称为矢量化(vetorization)

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.arange(6)
b= b.reshape(2,3)

>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> b
array([[0, 1, 2],
       [3, 4, 5]])
>>> a+b
array([[ 1,  3,  5],
       [ 7,  9, 11]])
>>> a-b
array([[1, 1, 1],
       [1, 1, 1]])
>>> a*b  #逐项相乘
array([[ 0,  2,  6],
       [12, 20, 30]])
>>> a**b #逐项乘方
array([[   1,    2,    9],
       [  64,  625, 7776]])
>>> sum(a)
array([5, 7, 9])

>>> np.sin(a)
array([[ 0.84147098,  0.90929743,  0.14112001],
       [-0.7568025 , -0.95892427, -0.2794155 ]])
>>> 1/a
array([[1.        , 0.5       , 0.33333333],
       [0.25      , 0.2       , 0.16666667]])


numpy array的切片是原来数组的视图,对切片的数据进行修改,会直接修改原来数组的数据。 除非进行显式的复制,例如arr[5:8].copy()

 

>>> a
array([[1, 2, 3],
       [4, 5, 6]])
#矩阵第一列
>>> a[:,0]
array([1, 4])
#矩阵第一行
>>> a[:1,]
array([[1, 2, 3]])
#矩阵最后一列
>>> a[:,-1]
array([3, 6])

 

  

http://www.ruanyifeng.com/blog/2015/09/matrix-multiplication.html

posted on 2018-01-31 07:15  Gu  阅读(...)  评论(...编辑  收藏