计算

import numpy as np
# 计算平均数
list = [1,2,3,4,5]
print(np.mean(list))

矩阵

from numpy import array as matrix, arange
# 创建矩阵,0-14个元素,改造成3 * 5的矩阵。
X = arange(15).reshape(3,5)
# 创建矩阵,12个元素,2 * 6 的矩阵,指定为int类型。
X = matrix([[1,2,3,4,5,6],[7,8,9,10,11,12]], dtype=int)
 
# 创建列向量
x = np.array([11,12])
 
 
# 随机矩阵
import numpy as np
X = np.empty((5, 5)) # 创建一个随机数矩阵
 
 
# 创建特殊矩阵
from numpy import zeros, ones, empty
z = zeros((3,4))  # 全零矩阵
o = ones((3,4))   # 全一矩阵
e = empty((2,2))  # 空矩阵(实际全是非常小的数)

数学运算

from numpy import array as matrix, arange
a = arange(9).reshape(3,3)
b = arange(3)
a + b          # 两个矩阵相加。
a - b          # 两个矩阵相减
a * b          # 两个矩阵相乘
a < 5          # 矩阵中每一个元素做比较
a ** 2         # 矩阵中每一个元素进行指数运算
a += 3         # 矩阵中每一个元素加上一个数字

矩阵的内置方法

>>> a = arange(9).reshape(3,3)
>>> a
array([[0, 1, 2],
    [3, 4, 5],
    [6, 7, 8]])
>>> a.max()
8
>>> a.min()
0
>>> a.sum()
36
>>>

矩阵索引、拆分、遍历

>>> a = arange(25).reshape(5,5)
>>> a
array([[ 0,  1,  2,  3,  4],
    [ 5,  6,  7,  8,  9],
    [10, 11, 12, 13, 14],
    [15, 16, 17, 18, 19],
    [20, 21, 22, 23, 24]])
 
>>> a[2,3]                  # 取第三行,第四列元素。
13
 
>>> a[0:3,3]                # 取第一行到第三行,第四列元素。
array([ 3,  8, 13])
 
>>> a[:,2]                  # 取所有行,第三列元素。
array([ 2,  7, 12, 17, 22])
 
>>> a[:3,:]                 # 取第一行到第三行,所有元素。
array([[ 0,  1,  2,  3,  4],
    [ 5,  6,  7,  8,  9],
    [10, 11, 12, 13, 14]])
 
>>> a[-1]                   # 取最后一行。
array([20, 21, 22, 23, 24])
 
>>> for row in a:           # 按照行迭代数据。
...     print(row)
...
[0 1 2 3 4]
[5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
 
>>> for element in a.flat:  # 按照元素迭代数据。
...     print(element)
...
0
1
2
3
4

改变矩阵

>>> b = arange(20).reshape(5,4)
>>> b
array([[ 0,  1,  2,  3],
    [ 4,  5,  6,  7],
    [ 8,  9, 10, 11],
    [12, 13, 14, 15],
    [16, 17, 18, 19]])
 
>>> b.ravel()                 # 散开矩阵
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
    17, 18, 19])
 
>>> b.reshape(4,5)            # 转换矩阵
array([[ 0,  1,  2,  3,  4],
    [ 5,  6,  7,  8,  9],
    [10, 11, 12, 13, 14],
    [15, 16, 17, 18, 19]])
 
>>> b.T                       # reshape 方法不改变原矩阵的值,所以需要使用 .T 方法来获取改变后的值。
array([[ 0,  4,  8, 12, 16],
    [ 1,  5,  9, 13, 17],
    [ 2,  6, 10, 14, 18],
    [ 3,  7, 11, 15, 19]])
>>> b
array([[ 0,  1,  2,  3],
    [ 4,  5,  6,  7],
    [ 8,  9, 10, 11],
    [12, 13, 14, 15],
    [16, 17, 18, 19]])
>>>

合并矩阵

# -*- coding: utf-8 -*-
"""
Created on Tue Mar  5 11:02:40 2019
 
@author: duchaoqun
"""
 
import numpy as np
 
# Random num between 0 and 1.
np.random.random((2,2))
 
# 向下取整
d1 = np.floor(10 * np.random.random((2,2)))
d2 = np.floor(10 * np.random.random((2,2)))
 
# 按照列堆叠起来
np.vstack((d1,d2))
 
# array([[5., 7.],
#       [7., 3.],
#       [8., 2.],
#       [5., 1.]])
 
 
# 按照行堆叠起来
np.hstack((d1,d2))
# array([[5., 7., 8., 2.],
#       [7., 3., 5., 1.]])
# 和并列,效果同上
np.column_stack((d1,d2))
# array([[5., 7., 8., 2.],
#       [7., 3., 5., 1.]])
 
# 这里创建的是列向量?
c1 = np.array([11,12])
c2 = np.array([21,22])
# 合并两个列向量,变成2 * 2的矩阵。
np.column_stack((c1,c2))