科学计算库Numpy

genfromtxt函数

import numpy

tmp = numpy.genfromtxt("1.txt",delimiter=",",dtype=str)
print (type(tmp))
print (tmp)
print (help(numpy.genfromtxt))

 genfromtxt函数里穿了三个参数,分别是 要打开的文档名称,分隔符,以什么类型存储  打印结果:

 第一行输出的是"tmp"这个变量的类型,可以看到是个ndarray矩阵类型,然后下面输出的是矩阵的值,最后输出的是genfromtxt这个函数的帮助文档

array函数

import numpy

vector = numpy.array([5,10,15,20])
matrix = numpy.array([[5,10,15],[20,25,30],[35,40,45]])
print (vector)#[ 5 10 15 20]
print (matrix)
#[[ 5 10 15]
# [20 25 30]
# [35 40 45]]

 这个太简单不说了qwq

shape变量

import numpy

vector1 = numpy.array([[1],[2],[3]])
vector2 = numpy.array([1,2,3])
vector3 = numpy.array([[5,10,15],[20,25,30]])
print (vector1.shape)#(3, 1)
print (vector2.shape)#(3,)
print (vector3.shape)#(2,3)

 shape变量就是打印矩阵的维度

取矩阵数据的问题

 格式:变量名 = 矩阵名[x,y],需要注意矩阵下标从0开始  格式:变量名 = 矩阵名[x,y~1~:y~2~];取矩阵第x行,第y~1~列到第y~2~列的数据,不包含y~2~,下标同样从0开始  格式:变量名 = 矩阵名[:,y],取第y列上的值,同理,[x,:]表示取第x行上的所有值

==运算

import numpy

vector = numpy.array([5,10,15,20])
print (vector == 10) #[False True False False]
import numpy

vector = numpy.array([5,10,15,20])
equal_to_ten = (vector == 10)
print (vector[equal_to_ten])#[10]

&、|运算

 不知道为什么python里面不是两个&,而是一个&,反正只要记住在python里面逻辑与和逻辑或都是一个就行了qwq....

import numpy

vector = numpy.array([5,10,15,20])
equal_to_ten_or_five = (vector == 5) | (vector == 10)
print (equal_to_ten_or_five)#[True True False False]

astype函数

 astype函数是将矩阵中所有元素的类型变为参数指定的类型

import numpy

vector = numpy.array([5,10,15,20])
print (vector.dtype)#int32
vector = vector.astype(str)
print (vector.dtype)#<U11
print (vector)#['5' '10' '15' '20']

min函数

import numpy

vector = numpy.array([[5,10,15],
                      [20,25,30],
                      [35,40,45]
                     ])
print (vector.min(axis = 1))#[5 20 35]
print (vector.min(axis = 0))#[5 10 15]
#print (help(numpy.array))

 axis表示按行或列进行计算,axis=1表示按行计算,axis=0表示按列计算

sum函数

import numpy

vector = numpy.array([[5,10,15],
                      [20,25,30],
                      [35,40,45]
                     ])
print (vector.sum())#225
print (vector.sum(axis = 1))#[30 75 120]
print (vector.sum(axis = 0))#[60 75 90]

arange和reshape函数

 arange(x)表示构造一个0到x-1的一维矩阵;reshape(x,y)表示将矩阵改为x行y列

import numpy as np

vector = np.arange(15)
print (vector)#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
vector = vector.reshape(3,5)
print (vector)
#[[ 0  1  2  3  4]
# [ 5  6  7  8  9]
# [10 11 12 13 14]]

 arange还有一种用法arange(start,end,c),表示的含义是构造一个起始值为start,小于end的一个公差为c的等差序列

ndim和size变量

import numpy as np

vector = np.arange(9)
vector = vector.reshape(3,3)
print (vector.ndim)#2
print (vector.size)#9

zeros和ones函数

 zeros和ones分别构造全0和全1矩阵

import numpy as np

print (np.zeros((2,2),dtype = np.int32))
#[[0 0]
# [0 0]]
print (np.ones((2,3),dtype = np.int32))
#[[1 1 1]
# [1 1 1]]

random函数

import numpy as np

print (np.random.random((2,3)))#产生小于1的随机数

 两个radom含义不一样,最左边的random类似于Java中包,先进入random包,然后调用random函数

linspace函数

import numpy as np
from numpy import pi

print (np.linspace(0,2*pi,100))

 linspace(start,end,num),构造起始值为0,终点值为end,个数为num个的一维矩阵

矩阵运算

import numpy as np

A = np.array([[1,1],
              [0,1]])
B = np.array([[2,0],
              [3,4]])
print (A * B)#对应位置的元素相乘
print (A.dot(B))#矩阵乘法

ravel()

 将n行m列的矩阵变成一行m*n列矩阵

import numpy as np
vector = np.array([[1,2,3],
                   [4,5,6],
                   [7,8,9],
                   [10,11,12]])
print (vector.ravel())
print (vector.T)#转置
print (vector.reshape(4,-1))

 reshape只要有一个参数确定,另一个参数就确定了,所以另一个参数如果你懒得算,直接写-1,python会自动计算另一个维度是多少

hstack和vstack函数

 hstack函数的作用是将两个矩阵横着拼接在一起;vstack是将两个矩阵竖着拼接在一起

import numpy as np

A = np.array([[1,2],
              [3,4]])
B = np.array([[5,6],
              [7,8]])
print (np.hstack((A,B)))
#[[1 2 5 6]
# [3 4 7 8]]
print (np.vstack((A,B)))
#[[1 2]
# [3 4]
# [5 6]
# [7 8]]

hsplit和vsplit函数

 分割矩阵的函数

import numpy as np

A = np.array([[1,2,3,4,5,6,7,8,],[9,10,11,12,13,14,15,16]])
print (A)
print (np.hsplit(A,4))
print (np.hsplit(A,(3,4)))
print (np.vsplit(A,2))

矩阵复制

import numpy as np

A = np.arange(12)
B = A
B.shape = 3,4
print (A.shape)#(3, 4)
print (id(A))#1521835664848
print (id(B))#1521835664848

 从这结果我们可以看出,python赋值是传引用

import numpy as np

A = np.arange(12)
B = A.view()
B.shape = 3,4
B[0,0] = 9
print (A[0:1])#[9]
print (A.shape)#(12,)
print (id(A))#1521835665728
print (id(B))#1521835665648

 view相当于一个浅复制,虽然改变B的维度,A不变,但是如果改变A矩阵中某位置上的值,B里也会改变,反之也一样

import numpy as np

A = np.arange(12)
B = A.copy()
B.shape = 3,4
B[0,0] = 9
print (A[0:1])#[0]
print (A.shape)#(12,)
print (id(A))#1521835666208
print (id(B))#1521835665488

 copy和上面两种复制不一样,copy完完全全是将两个矩阵分离开,任何操作都不会影响到对方

argmax函数

 argmax寻找最大值的下标,argmax(axis=0)表示按列寻找,argmax(axis=1)表示按行寻找

import numpy as np

data = np.arange(12).reshape((3,4))
print (data.argmax(axis = 0))#[2 2 2 2]

tile函数

 tile(data,(n,m)),将data矩阵扩展n行m列个

import numpy as np

data = np.arange(10,40,10)
print (np.tile(data,(2,2)))

sort函数

 排序

import numpy as np

a = np.array([[4,3,5],[1,2,1]])
b = np.sort(a,axis = 1)
print (b)
#[[3 4 5]
# [1 1 2]]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏chenjx85的技术专栏

leetcode-896-单调数列

如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递...

13830
来自专栏崔庆才的专栏

TensorFlow layers模块用法

TensorFlow 中的 layers 模块提供用于深度学习的更高层次封装的 API,利用它我们可以轻松地构建模型,这一节我们就来看下这个模块的 API 的具...

1.2K80
来自专栏前端新视界

使用 JS 输出螺旋矩阵

这是我曾经遇到过的面试题,在 LeetCode 上找到了题目的原型,难度中等。题目描述如下:

13620
来自专栏Python小屋

Python符号计算入门及隐函数图像绘制

感谢国防科大刘万伟老师提供了隐函数图像绘制的原始问题以及完美答案,我又补充了一点符号计算的基础知识。 >>> from sympy import * #定义符号...

41850
来自专栏和蔼的张星的图像处理专栏

730. 所有子集的和递归

给一整数 n, 我们需要求前n个自然数形成的集合的所有可能子集中所有元素的和 样例

14620
来自专栏小鹏的专栏

tf API 研读2:math

TF API数学计算 tf...... :math (1)刚开始先给一个运行实例。         tf是基于图(Graph)的计算系统。而图的节点则是由操作(...

81050
来自专栏calmound

hust 1607 Triangles(经典好题)

题意:给出一定的点,然后再给出哪些点相连,问最后这些相连点的组成多少个三角形,hash的应用 分析:转载牛人的思想 题意:给一些点的坐标和里面的点构成的一些线段...

30180
来自专栏数据结构与算法

25:最长最短单词

25:最长最短单词 总时间限制: 1000ms 内存限制: 65536kB描述 输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格...

396100
来自专栏技术专栏

Python3入门机器学习(二)- Jupyter Notebook与Numpy的使用

测试结果表明,运行了一千次,取有价值的7次,平均每次耗时324+/-5.7 μs(有多少次循环是由Jupyter Notebook自动决定的)

39430
来自专栏机器学习算法与Python学习

Python: numpy总结(3)

21、dot矩阵点积 例子: ll = [[1,2,3],[4,5,6],[7,8,9]]ld = dot(ll,ll) print 'dot:',l...

34140

扫码关注云+社区

领取腾讯云代金券