前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >numpy模块(对矩阵的处理,ndarray对象)

numpy模块(对矩阵的处理,ndarray对象)

作者头像
小小咸鱼YwY
发布2019-07-24 16:34:04
9420
发布2019-07-24 16:34:04
举报
文章被收录于专栏:python-爬虫

6.12自我总结

一.numpy模块

import numpy as np约定俗称要把他变成np

1.模块官方文档地址

https://docs.scipy.org/doc/numpy/reference/?v=20190307135750

2.创建矩阵

1.np.array
代码语言:javascript
复制
import numpy as np
#创建一维的ndarray对象
arr = np.array([1, 2, 3])
print(arr)
#[1 2 3]

#创建二维的ndarray对象
arr = np.array([[1, 2, 3],
               [4,5,6]])
print(arr)
'''
[[1 2 3]
 [4 5 6]]
'''
#创建三维的ndarray对象
arr = np.array([[[1, 2, 3],[3,2,1]],
               [[4,5,6],[6,5,4]]])
print(arr)
'''
[[[1 2 3]
  [3 2 1]]

 [[4 5 6]
  [6 5 4]]]
'''

#我们可以这样理解.其实内这个可以相当于几何里面的,点,线,面,里面各个元素相当一个点,一个列表里面有几个元素相当于线也就是一维,然后列表里面套列表相当于线,以此类推

3.对于矩阵的操作(ndarray对象的方法)

1.shape(查看ndarray对象的形式)
代码语言:javascript
复制
import numpy as np
arr = np.array([[1, 2, 3],
               [4,5,6]])
print(arr.shape)
#(2, 3)
# (矩阵的行数,矩阵的列数)
2.切分工具
代码语言:javascript
复制
import numpy as np
arr = np.array([[1, 2, 3],
               [4,5,6]])

#取第一行全部
print(arr[0,:])

#取第一列全部
print(arr[:,0])

#取第二行第二个
print(arr[1,1],type(arr[1,1])) #5 <class 'numpy.int32'>
print(arr[1,1:2],type(arr[1,1:2]))#[5] <class 'numpy.ndarray'>

#取第二行第第二个和第三个
print(arr[1,1:3])

#取大于3的值
print(arr[arr>3])

#取第第一列大于3的值
arr_lien = arr[:,0]
print(arr_lien[arr_lien>3])
3.生成布尔矩阵
代码语言:javascript
复制
import numpy as np
arr = np.array([[1, 2, 3],
               [4,5,6]])
print(arr>5)
'''
[[False False False]
 [False False  True]]
'''
4.矩阵的替换
代码语言:javascript
复制
用切片取值然后进行赋值
5.矩阵合并
1.np.concatenate
代码语言:javascript
复制
import numpy as np
arr1 = np.array([[1, 2, 3],
               [4,5,6]])
arr1 = np.array([[3, 2, 4],
               [5,3,7]])

print(np.concatenate((arr1,arr2),axis=0或1) #前面只能写入一个容器,后面用axis控制竖着合并还是横着合并
6.矩阵的生成
1.arange
代码语言:javascript
复制
np.arage(起始值,结束值,步长)#顾头不顾尾,用法类似for 循环中的range
2.linspace/logspace
代码语言:javascript
复制
# 构造一个等差数列,取头也取尾,从0取到20,取5个数
print(np.linspace(0, 20, 5))
#[  0.   5.  10.  15.  20.]

# 构造一个等比数列,从10**0取到10**20,取5个数
print(np.logspace(0, 20, 5))
[1.e+00 1.e+05 1.e+10 1.e+15 1.e+20]
3.zeros/ones/eye
代码语言:javascript
复制
# 构造3*4的全0矩阵
print(np.zeros((3, 4))) #填的值为(行数,列数)

# 构造3*4的全1矩阵
print(np.ones((3, 4)))  #填的值为(行数,列数)

# 构造3个主元的单位矩阵
print(np.eye(3))     #填的值为(主元的个数)
'''
[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]
'''
4.fromstring/fromfunction
代码语言:javascript
复制
# fromstring通过对字符串的字符编码所对应ASCII编码的位置,生成一个ndarray对象
s = 'abcdef'
# np.int8表示一个字符的字节数为8
print(np.fromstring(s, dtype=np.int8)) 

def func(i, j):
    """其中i为矩阵的行,j为矩阵的列"""
    return i*j


# 使用函数对矩阵元素的行和列的索引做处理,得到当前元素的值,索引从0开始,并构造一个3*4的矩阵
print(np.fromfunction(func, (3, 4)))
7.随机生成(np.random)
代码语言:javascript
复制
# RandomState()方法会让数据值随机一次,之后都是相同的数据
rs = np.random.RandomState(1)
print(rs.rand(10))

# 构造3*4的均匀分布的矩阵
# seed()方法会让数据值随机一次,之后都是相同的数据
np.random.seed(1)
print(np.random.rand(3, 4))

# 构造3*4*5的均匀分布的矩阵
print(np.random.rand(3, 4, 5))

# 构造3*4的正态分布的矩阵
print(np.random.randn(3, 4))

# 构造取值为1-5内的10个元素的ndarray数组
print(np.random.randint(1, 5, 10))

# 构造取值为0-1内的3*4的矩阵
print(np.random.random_sample((3, 4)))

# 随机选取arr中的两个元素
print(np.random.choice(arr, size=2))

对照表

函数名称

函数功能

参数说明

rand(d0,d1,⋯,dn)

产生[0,1)内的均匀分布的随机数

d~n~为第n维数据的维度

randn(d0,d1,⋯,dn)

产生标准正态分布随机数

d~n~为第n维数据的维度

randint(low[, high, size, dtype])

产生随机整数

low:最小值;high:最大值;size:数据个数

random_sample([size])

在[0,1)内产生随机数

size为随机数的shape,可以为元祖或者列表

choice(a[, size])

从arr中随机选择指定数据

arr为1维数组;size为数据形状

4.矩阵运算(与数据类型差不多)

运算表

运算符

说明

+

两个矩阵对应元素相加

-

两个矩阵对应元素相减

*

两个矩阵对应元素相乘

/

两个矩阵对应元素相除,如果都是整数则取商

%

两个矩阵对应元素相除后取余数

**n

单个矩阵每个元素都取n次方,如**2:每个元素都取平方

4.矩阵的行和列互换(transpose)

5.矩阵的最大最小值 ,平均值,方差

1.最大值ndarray对象.max
2.最小值ndarray对象.min
3.平均值ndarray对象.mean
4.方差ndarray对象.var

()代表区别

(axis=0)每列

(axis=1)每行

代码语言:javascript
复制
# 获取矩阵所有元素中的最大值
print(arr.max())

# 获取举着每一列的最大值
print(arr.max(axis=0))

# 获取矩阵每一行的最大值
print(arr.max(axis=1))

# 获取矩阵最大元素的索引位置
print(arr.argmax(axis=1)
      
# 获取矩阵所有元素的平均值
print(arr.mean())

# 获取矩阵每一列的平均值
print(arr.mean(axis=0))
      
# 获取矩阵每一行的平均值
print(arr.mean(axis=1))
      
# 获取矩阵所有元素的方差
print(arr.var())

# 获取矩阵每一列的元素的方差
print(arr.var(axis=0))
      
# 获取矩阵每一行的元素的方差
print(arr.var(axis=1))      
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-06-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 6.12自我总结
    • 一.numpy模块
      • 1.模块官方文档地址
      • 2.创建矩阵
      • 3.对于矩阵的操作(ndarray对象的方法)
      • 4.矩阵的行和列互换(transpose)
      • 5.矩阵的最大最小值 ,平均值,方差
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档