Numpy中的矩阵运算+聚合操作+arg运算(2019.1.17

2019-01-19  本文已影响0人  MMatx

Numpy中的矩阵运算

1.矩阵与数值之间的运算,矩阵与数值之间的算术运算,是矩阵里面的元素与数值进行运算


image.png
image.png
image.png

2.矩阵之间的运算

image.png
image.png
image.png

numpy.linalg模块包含线性代数的函数。使用这个模块,可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。

Numpy中的聚合操作

Numpy中的聚合操作包括一下
(1)求和

#一维
a=numpy.arange(10)
numpy.sum(a)
a.sum() #面向对象写法
#二维
x=numpy.arange(20).reshape(4,5)
numpy.sum(x)  # 求所有元素之和
x.sum() # 求所有元素之和
np.sum(X,axis=0) # 求每一列的和 将要被压缩的维度
np.sum(X,axis=1) # 列被压缩,显示每一行的和

(2)最大最小值

numpy.max(x)
numpy.min(x)

(3)所有元素的乘积

numpy.prod(x)# 所有元素的乘积

(4)平均值,中位数,求第几分位的数值,方差,标准差

numpy.mean(x) #平均值
numpy.median(x) #中位数
numpy.percentile(x,q=75) #求第75%分位的数,数值从小到大排序
numpy.var(x) # 方差
numpy.std(x) #标准差

Numpy中的arg运算

numpy中的arg都是与索引有关的

import numpy
x = numpy.random.normal(0,1,100000) # 正态分布 均值 方差 数据个数
arg1=numpy.argmax(x)  # 返回列表中最大值所在的索引
arg2=numpy.argmin(x) # 返回列表中最小值所在的索引
a=numpy.arange(16)
numpy.random.shuffle(a) # 对a进行乱序操作
numpy.sort(a) #对a进行排序

二维

X = numpy.random.randint(10,size=(4,4))
numpy.sort(X)
numpy.argsort(x) # 返回索引值 从大到小排序之后,数值的索引值 返回排序后的索引
#带arg的都是索引
numpy.partition(x,3) # 标定点
numpy.argpartition(x,3)

Numpy中的比较和fancy_indexing

1、利用列表代表索引访问列表或者是矩阵
2、布尔索引,代表这个此元素是否访问
3、列表/矩阵进行逻辑运算可以返回每个元素是否满足此条件的状态,若是true则为满足,若为false则是不满足
4、可以利用布尔索引去筛选值

#!/usr/bin/env python
# coding: utf-8

# # Numpy中的比较和fancy_indexing

import numpy as np

x = np.arange(16)
x[3:9:2]

# 要返回2 5 8 位置的元素
[x[2],x[5],x[8]]

ind =  [3,5,8]
x[ind]

ind = np.array([[0,2],[1,3]])

x[ind]

X = x.reshape(4,-1)

row = np.array([0,1,2])
col = np.array([1,2,3])
X[row,col]

X[0,col]

X[:2,col]

# bool 索引
col = [True,False,True,True] # false 是不访问的数据 
X[1:3,col]

x < 3 

x > 3

x ==3
2 * x == 24-4*x

X < 6

np.sum(x<=3)
np.count_nonzero(x<=3)
np.any(x == 0)
np.any(x<0)
np.all(x>=0)
np.all(x>0)
np.sum(X%2 ==0)
np.sum(X%2==0,axis=0) # 看每一列有多少个偶数
np.sum(X%2==0,axis=1) # 看每一行有多少个偶数
np.sum(X>0,axis=1) # 看每一行有多少大于0的
np.all(X>0,axis=1)
np.sum((x>3)&(x<10))
np.sum((x%2==0)|(x>10))
x<5
x[x<5] # 利用布尔索引去筛选值
x[x%2==0]
X[X[:,3]%3==0,:]
X[:,3]
上一篇下一篇

猜你喜欢

热点阅读