说明:个人学习记录,仅供参考。
操作系统:window10 x64
IDE:Pycharm 2017.2.2
Python版本:3.6.2
安装
本次换一种安装方式:
1、从https://pypi.python.org/pypi/numpy 处下载对应版本,我这里下载numpy-1.13.1-cp36-none-win_amd64.whl (md5, pgp)
,指的是64位操作系统,python3.6版本对应的numpy。注意版本一定要对应,不然会安装出错。
2、切换到下载文件所在的目录,然后:
pip3.6 install numpy-1.13.1-cp36-none-win_amd64.whl
即可
基本用法
1、求矩阵元素最大值、最小值和平均值
import numpy as np
mat = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
# 最大元素的值 9
print(mat.max())
# 最小元素的值 1
print(mat.min())
# 平均值 5.0
print(mat.mean())
2、矩阵求和、行求和、列求和
import numpy as np
mat = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
# 元素总和 45
print(mat.sum())
# 元素行求和 [ 6 15 24]
print(mat.sum(axis=1))
# 元素列求和 [12 15 18]
print(mat.sum(axis=0))
3、元素相乘、矩阵相乘
import numpy as np
a = np.array([
[1, 2],
[3, 4]
])
b = np.array([
[5, 6],
[7, 8]
])
'''
对应位置元素相乘,结果为:
[[ 5 12]
[21 32]]
'''
print(a * b)
'''
矩阵相乘,结果为:
[[19 22]
[43 50]]
'''
print(a.dot(b))
# 矩阵相乘,同上
print(np.dot(a, b))
4、矩阵元素求平方、立方、开根号
import numpy as np
# 创建等差数组,类似于range
a = np.arange(4)
# [0 1 2 3]
print(a)
# 求矩阵各元素的平方 [0 1 4 9]
print(a ** 2)
# 求各元素的三次方
print(a ** 3)
# 各元素开根号 [ 0. 1. 1.41421356 1.73205081]
print(np.sqrt(a))
5、求元素e的n次幂
import numpy as np
# 创建等差数组,类似于range
a = np.arange(3)
# [0 1 2]
print(a)
# e的对应元素次幂
# 自然对数的底数e是由一个重要极限给出的.我们定义:当x趋于无限时,lim(1+1/x)^x=e.e是一个无限不循环小数,其值约等于2.718281828…,
print(np.exp(a))
6、随机生成矩阵、向下取整
import numpy as np
# 生成3行4列的二维矩阵,取值为随机的浮点数,在半开区间 [0.0, 1.0)
a = 10 * np.random.random((3, 4))
# 乘10之后,得到类似如下的矩阵:
'''
[[ 4.12913155 3.74225311 5.99355689 6.46899251]
[ 9.6168953 2.97444891 1.94358161 8.59825219]
[ 2.55920397 0.88531021 1.97703553 3.21143099]]
'''
print(a)
# floor 用于向下取整
'''
[[ 4. 3. 5. 6.]
[ 9. 2. 1. 8.]
[ 2. 0. 1. 3.]]
'''
print(np.floor(a))
7、平坦化数组、矩阵转换
import numpy as np
# 生成3行4列的二维矩阵,取值为随机的浮点数,在半开区间 [0.0, 1.0)
a = np.floor(10 * np.random.random((3, 4)))
'''
[[ 4. 1. 3. 4.]
[ 0. 2. 4. 3.]
[ 2. 0. 3. 4.]]
'''
print(a)
# 平坦化数组,其实就是将二维数组转为一维数组,转换规则为从左到右从上到下
b = np.ravel(a)
'''
[ 4. 1. 3. 4. 0. 2. 4. 3. 2. 0. 3. 4.]
'''
print(b)
# 矩阵转换,其实就是将一维数组转为二维数组,当然也可以是一种二维转为另一种二维数组
'''
[[ 4. 1.]
[ 3. 4.]
[ 0. 2.]
[ 4. 3.]
[ 2. 0.]
[ 3. 4.]]
'''
print(b.reshape(6, 2))