NumPy简单使用(Python2.7)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39071593/article/details/84589947
  1. 安装
    win+R打开cmd
pip install numpy
  1. 用法示例
#导入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的服从正太分布的随机矩阵

其实有很多函数日后有空再补充

猜你喜欢

转载自blog.csdn.net/qq_39071593/article/details/84589947