博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
人工智能学习笔记——科学计算库Numpy
阅读量:4219 次
发布时间:2019-05-26

本文共 4280 字,大约阅读时间需要 14 分钟。

import numpy

创建向量:vector = numpy.array([1,2,3,4])

创建矩阵:matrix = numpy.array([[1,2,3],[4,5,6]])

打印维度(行列数):print(vector.shape)

                               print(matrix.shape):(2, 3)

打印类型:print(marix.dtype):int64

读取文本:world_alchohol = numpy.genfromtxt("world_alcohol.txt",delimiter=",",dtype =str,skip_header = 1 )

                 delimiter:分隔符

                 dtype:传入的类型

                 skip_header = 1:跳过第一行   

索引取值:value = world_alchohol[1,4]#第二行第五列

                 allValue = world_alchohol[:,4]#所有行的第五列

                 print(vector[0:3])

                 print(marix[:,0:3])

                 print(marix[0:2,0:3])

vector = numpy.array([1,2,3,4,5])

vector == 5

array([False, False, False, False,  True])

equalFive = (vector == 5)

print(vector[equalFive])

[5]

marix = numpy.array([

    [1,2,3],
    [4,5,6],
    [7,8,9]
])
marix == 5

array([[False, False, False],       [False,  True, False],       [False, False, False]])

&与    |或

类型转换:vector = numpy.array(["1","2","3"])

                 print(vector.dtype)
                 vector = vector.astype(float)
                 print(vector.dtype)

    
最值:vector = numpy.array([1,2,3,4,5])
          minValue = vector.min()
          maxValue = vector.max()
          print(minValue)
          print(maxValue)

    1    5
行列求和:marix = numpy.array([
                    [1,2,3],

                    [4,5,6],

                    [7,8,9]

                ])
                columnSum = marix.sum(axis=0)#列求和
                rawSum = marix.sum(axis=1)#行求和
                print(columnSum)
                print(rawSum)
        [12 15 18]        [ 6 15 24]

import numpy as np

构造数列:print(np.arange(15))

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

构造切片数列:np.arange(2,10,2)

array([2, 4, 6, 8])

构造矩阵:marix = np.arange(15).reshape(3,5)

                print(marix)
[[ 0  1  2  3  4] [ 5  6  7  8  9] [10 11 12 13 14]]
矩阵的维度(二维、三维):marix.ndim

矩阵元素的个数:marix.size

构造零矩阵:np.zeros((3,4))

array([[0., 0., 0., 0.],       [0., 0., 0., 0.],       [0., 0., 0., 0.]])
构造单位矩阵:np.ones((2,3,4),dtype=np.int16)
array([[[1, 1, 1, 1],        [1, 1, 1, 1],        [1, 1, 1, 1]],       [[1, 1, 1, 1],        [1, 1, 1, 1],        [1, 1, 1, 1]]], dtype=int16)
构造随机数矩阵:np.random.random((2,3))
array([[0.36243571, 0.10834852, 0.50913561],       [0.19129293, 0.01765437, 0.18629496]])
平均切片:from numpy import pi
                np.linspace(0,2*pi,10)
array([[0.36243571, 0.10834852, 0.50913561],       [0.19129293, 0.01765437, 0.18629496]])
矩阵内积(对应相乘):A = np.array([[1,2],[3,4]])
                                    B = np.array([[5,6],[7,8]])
                                    print(A*B)
[[ 5 12] [21 32]]
矩阵外积:A = np.array([[1,2],[3,4]])
                B = np.array([[5,6],[7,8]])
                print(A.dot(B))
                print(np.dot(A,B))
[[19 22] [43 50]][[19 22] [43 50]]

数学运算:np.exp()

                 np.sqrt()

向下取整:print(np.floor(1.01))

向上取整:print(np.ceil(1.01))

向零取整:print(np.fix(1.8))

矩阵转向量:print(marix)

                    print(marix.ravel())

[[ 0  1  2  3  4] [ 5  6  7  8  9] [10 11 12 13 14]][ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
垂直、水平拼接矩阵:print(np.vstack((A,B)))
                                  print(np.hstack((A,B)))
[[1 2] [3 4] [5 6] [7 8]][[1 2 5 6] [3 4 7 8]]
矩阵水平平均切割:marix = np.arange(24).reshape(2,12)
                                print(marix)
                                print(np.hsplit(marix,2))
[[ 0  1  2  3  4  5  6  7  8  9 10 11] [12 13 14 15 16 17 18 19 20 21 22 23]][array([[ 0,  1,  2,  3,  4,  5],       [12, 13, 14, 15, 16, 17]]),
array([[ 6,  7,  8,  9, 10, 11],       [18, 19, 20, 21, 22, 23]])]
矩阵水平任意切割:print(np.hsplit(marix,(3,5)))
[array([[ 0,  1,  2],       [12, 13, 14]]),
array([[ 3,  4],       [15, 16]]),
array([[ 5,  6,  7,  8,  9, 10, 11],       [17, 18, 19, 20, 21, 22, 23]])]
矩阵垂直平均切割:print(np.vsplit(marix,2))
[array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11]]), array([[12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]])]

复制:

a = np.array([1,2,3,4])

b = a.copy()#复制初始化值
print(b is a)
b[0] = 10
print(a)
print(b)

False[1 2 3 4][10  2  3  4]
a = np.array([1,2,3,4])
b = a
print(b is a)
b[0] = 10
print(a)
print(b)
True[10  2  3  4][10  2  3  4]

矩阵行(列)的最大值索引:

data = np.sin(np.arange(20)).reshape(5,4)

print(data)
ind = data.argmax(axis = 0)#axis = 0列axis = 1行
print(ind)
data_max = data[ind,range(data.shape[1])]#data.shape[1]列数
print(data_max)

[[ 0.          0.84147098  0.90929743  0.14112001] [-0.7568025  -0.95892427 -0.2794155   0.6569866 ] [ 0.98935825  0.41211849 -0.54402111 -0.99999021] [-0.53657292  0.42016704  0.99060736  0.65028784] [-0.28790332 -0.96139749 -0.75098725  0.14987721]][2 0 3 1][0.98935825 0.84147098 0.99060736 0.6569866 ]

矩阵复制扩展:

a = np.arange(0,40,10)

print(a)
b = np.tile(a,(3,2))
print(b)

[ 0 10 20 30][[ 0 10 20 30  0 10 20 30] [ 0 10 20 30  0 10 20 30] [ 0 10 20 30  0 10 20 30]]

排序:

marix = np.array([[1,4,3],[4,2,9],[7,6,8]])

print(marix)
print(np.sort(marix,axis=1))#行排序

[[1 4 3] [4 2 9] [7 6 8]][[1 3 4] [2 4 9] [6 7 8]]

转载地址:http://lzxmi.baihongyu.com/

你可能感兴趣的文章
查看mysql的日志
查看>>
python中init方法和随机数方法
查看>>
python 文件操作
查看>>
MySQL命名、设计及使用规范
查看>>
python 爬虫
查看>>
pycharm 下载Django
查看>>
搭建一个简单的Django项目
查看>>
解决mysql中文乱码
查看>>
《谁的青春不迷茫》
查看>>
有多努力,就有多幸运
查看>>
【Angular】引入BootStrap第三方库
查看>>
创建Angular项目
查看>>
Where there is life, there is hope
查看>>
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
查看>>
idea启动Tomcat控制台乱码
查看>>
关于Spring
查看>>
SSH插入数据库乱码
查看>>
JSP分页显示重复
查看>>
Linux网络协议栈(一)——Socket入门(1)
查看>>
基于Linux的Socket网络编程的性能优化
查看>>