版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39071593/article/details/84589947
- 安装
win+R打开cmd
pip install numpy
- 用法示例
#导入NumPy库以np命名
import numpy as np
关于数组
#创建一维数组
a = np.array([1,2,3,4])
#创建二维数组
b = np.array([[1,2,3,4],[5,6,7,8]])
#创建三维数组
c = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
#输出c的元素数据类型结果为int32
print c.dtype
#输出数组大小
print a.shape #结果为(4L,)一维数组表示4个元素
print b.shape #结果为(2L,4L)表示2行4列
print c.shape #结果为(3L,4L)表示2行4列
#数组元素的存取方法
a = np.arange(10)
print a #输出[0 1 2 3 4 5 6 7 8 9]
print a[3:7] #输出[3 4 5 6]也就是输出数组下标3~(7-1)的元素
print a[-1] #结果为9,因为-1表示最后一个元素的位置
print a[:-1:2] #输出[0 2 4 6 8]表示0~倒数第二个元素并按2间隔
print a[:-1:3] #输出[0 3 6]表示0~倒数第二个元素并按3间隔
print a[-1::-3] #输出[9 6 3 0]表示数组顺序从右往左输出并于3间隔记得间隔数小于0
a[2:4] = 100,110 #修改数组下标2~3的元素的值
b = a[3:7] #a下标3~6元素赋给b
print b #输出为[110 4 5 6]
#有一点需要注意b与原始数组a共同享用同一个数据空间
#因此当修改b数组下标为2的元素,a数组对应下标5也会同时变为-10
b[2] = -10
print a[5] #输出-10
关于矩阵
a = np.matrix([[1,2,3],[5,5,6],[7,9,9]])
a*a**-1 #矩阵与逆矩阵相乘得到一个单位矩阵
'''
结果
matrix([[ 1.00000000e+00, 0.00000000e+00, -5.55111512e-17],
[ 4.44089210e-16, 1.00000000e+00, 3.33066907e-16],
[ 4.44089210e-16, 0.00000000e+00, 1.00000000e+00]])
'''
a = array([1,2,3])
#reshape函数,个人理解为重新塑造,
a.reshape((-1,1)) #(-1,1)表示1行变成1列
a.reshape((1,-1)) #(1,-1)表示1列变成1行
a = np.arange(12).reshape((2,3,2)) #表示2个矩阵每个矩阵有3行2列
'''
array([[[ 0, 1],
[ 2, 3],
[ 4, 5]],
[[ 6, 7],
[ 8, 9],
[10, 11]]])
'''
#dot函数,用来进行矩阵相乘
a = np.matrix([[1,2],[3,4]])
a = np.mat("1 2;3 4") #创建矩阵的另一种方法
b = np.matrix([[11,12],[13,14]])
print np.dot(a,b)
'''
结果
[[37 40]
[85 92]]
'''
#inner函数,矩阵与矩阵之间的行乘行
print np.inner(a,b)
'''
运算过程
[[1*11+2*12 1*13+2*14]
[3*11+4*12 3*13+4*14]]
结果
[[35 41]
[81 95]]
'''
#outer函数
print np.outer([1,2,3],[4,5,6,7])
'''
结果
[[ 4 5 6 7]
[ 8 10 12 14]
[12 15 18 21]]
'''
#NumPy更高级的函数
#inv矩阵求逆
np.linalg.inv(a)
'''
结果
[[-2. 1. ]
[ 1.5 -0.5]]
'''
#solve
B = np.mat("1 2;3 4")
b = np.array([0,1])
x = np.linalg.solve(B,b)
'''
B乘于什么得到b
结果
[ 1. , -0.5]
'''
NumPy其他函数
#numpy.random.rand(d0,d1,…,dn)
'''
rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
dn表格每个维度
返回值为指定维度的array
'''
np.random.rand(4,2)#产生一个4*2的随机矩阵
np.random.rand(4,3,2) #产生一个4*3*2的随机矩阵
#numpy.random.randn(d0,d1,…,dn)
'''
randn函数返回一个或一组样本,具有标准正态分布。
dn表格每个维度
返回值为指定维度的array
'''
np.random.randn(2,4) #产生一个2*4的服从正太分布的随机矩阵
其实有很多函数日后有空再补充