numpy 的基本使用1
numpy 的基本使用1
最近开始认真学习机器学习啦,之前只是大概了解了一下,记录一下自己的学习过程,后面也方便随时复习一下。
NumPy是一个由多维数组对象和用于处理数组的例程集合组成的库。可以执行以下操作:数组的算数和逻辑运算;傅立叶变换和用于图形操作的例程;与线性代数有关的操作,NumPy拥有线性代数和随机数生成的内置函数。NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用。
官网:http://www.numpy.org
安装Numpy:
pip install numpy 或 python -m pip install numpy
#学会文档查询
np.random.normal?
help(np.random.normal) #两种方式均可
#引入numpy库:
import numpy
#查看numpy版本:
numpy.__version__
'1.19.5'
#重命名库,方便使用:
import numpy as np
#通过list创建数组(数组元素类型一致):
nparray = np.array([i for i in range(10)])
nparray
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
nparray.dtype
dtype('int32')
#创建array方法:
nparray = np.array([i for i in range(10)])
nparray
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array = np.zeros(10)
array
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
#类型查看:
array.dtype
dtype('float64')
#指定类型:
np.zeros(10,dtype = int)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
ar = np.zeros(3)
ar
array([0., 0., 0.])
ar.dtype
dtype('float64')
#创建二维数组:
np.zeros((2,3))
array([[0., 0., 0.],[0., 0., 0.]])
#全1数组或二维数组:
np.ones(10)
array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
np.ones((2,3))
array([[1., 1., 1.],[1., 1., 1.]])
#指定值:
np.full(shape=(2,3),fill_value=6)
array([[6,6,6],[6,6,6]])#arange
#python中创建range(起始值默认0,截止,步长默认1) 步长不能为浮点数:
[i for i in range(0,20,2)]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
#Numpy创建 步长可以为浮点数:
np.arange(0,20,2.2)
array([ 0. , 2.2, 4.4, 6.6, 8.8, 11. , 13.2, 15.4, 17.6, 19.8])#linspace
#包括起始点 等间距截取个数:
np.linspace(0,20,10)
array([ 0. , 2.22222222, 4.44444444, 6.66666667, 8.88888889,11.11111111, 13.33333333, 15.55555556, 17.77777778, 20. ])#random
#生成0到10(不包括10)之间的随机数
np.random.randint(0,10)
9
#指定随机数个数,建议个数前加上名称size=以便区分
np.random.randint(0,10,10)
array([0, 3, 6, 1, 0, 9, 0, 7, 1, 4])
np.random.randint(0,10,size=(2,3))
array([[3, 0, 5],[6, 5, 3]])
#指定随机种子:
np.random.seed(666)
np.random.randint(0,10,10)
array([2, 6, 9, 4, 3, 1, 0, 8, 7, 5])
#创建浮点随机数:
np.random.random()
0.19289200304058374
#指定个数,size=可不写,建议加上以便区分:
np.random.random(size = 10)
array([0.70084475, 0.29322811, 0.77447945, 0.00510884, 0.11285765,0.11095367, 0.24766823, 0.0232363 , 0.72732115, 0.34003494])
np.random.random((2,3))
array([[0.19750316, 0.90917959, 0.97834699],[0.53280254, 0.25913185, 0.58381262]])
#创建符合正态分布随机浮点数,均值为0 方差为1
np.random.normal()
0.7294645190059565
指定均值为10和方差100 第三个参数为大小
np.random.normal(10,100,(2,3))
array([[ 124.13367716, 55.24366191, -213.49687669],[ 137.04776598, -62.92882099, 145.9252547 ]])#属性相关:
x = np.arange(10)
x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
y = np.arange(6).reshape((3,2))
y
array([[0, 1],[2, 3],[4, 5]])
#查看维度:
x.ndim
1
y.ndim
2
#一行10个元素:
x.shape
(10,)
#表示3行2列:
y.shape
(3, 2)
#元素个数的统计:
x.size
10
y.size
6#array数据访问:
x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
x[0]
0
x[-1]
9
y
array([[0, 1],[2, 3],[4, 5]])
y[0][0]
0
y[1,1]
3
#切片:
x[0:5]
array([0, 1, 2, 3, 4])
x[5:]
array([5, 6, 7, 8, 9])
#取列:
y[:,0]
array([0, 2, 4])
y[:,0].ndim
1
#注意:修改子矩阵中元素会改变原矩阵(区别于python)
y
array([[0, 1],[2, 3],[4, 5]])
subY = y[:1,:1]
subY
array([[0]])
subY = y[:1,:2]
subY
array([[0, 1]])
subY[0,0]=1
subY
array([[1, 1]])
y
array([[1, 1],[2, 3],[4, 5]])
#创建与原矩阵不相关的矩阵:
subY = y[:1,:2].copy()
subY
array([[1, 1]])
subY[0,0]=2
y
array([[1, 1],[2, 3],[4, 5]])
#reshape
x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
A = x.reshape(2,5)
A
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])
B = x.reshape(1,10)
B
array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
#注意:B为二维数组 维度为2:
B.ndim
2
A.ndim
2
B.shape
(1, 10)
#改变为10行,每行有多少让其自动生成(传入-1)
x.reshape(10,-1)
array([[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]])
x.reshape(2,-1)
array([[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]])
#错误:10不能被3整除
x.reshape(3,-1)
Traceback (most recent call last):File "<input>", line 1, in <module>
ValueError: cannot reshape array of size 10 into shape (3,newaxis)
跟着大佬梳理的流程走下来的,在这里注明一下出处:
https://github.com/Exrick/Machine-Learning
注:大佬的更直观详细
numpy 的基本使用1相关推荐
- OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)
首先是下面代码中将要使用的 r 矩阵的定义.需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内. Mat r = Mat(2, 3, ...
- NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...
- Python+OpenCV 图像处理系列(8)—— Numpy 对象及图像对象创建与赋值
1. Numpy 相关知识 1.1 Ndarray 对象 在了解 OpenCV 的图像对象之前我们先对 NumPy 的基础知识做一回顾,方便我们后续更进一步理解图像对象的一系列操作. In [2]: ...
- dataframe,python,numpy 问题索引2
20220330 print(frame3.isnull().any()) 找出存在空值的列 print("========================") print(fra ...
- dataframe,python,numpy 问题索引1
# 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...
- 数组的拼接合并 numpy
Python中numpy数组的合并有很多方法,如 np.append() np.concatenate() np.stack() np.hstack() np.vstack() np.dstack() ...
- view(*args)改变张量的大小和形状_pytorch reshape numpy
20201227 这个方法是在不改变数据内容的情况下,改变一个数组的格式,参数及返回值,官网介绍: a:数组–需要处理的数据 newshape:新的格式–整数或整数数组,如(2,3)表示2行3列,新的 ...
- 用NumPy genfromtxt导入数据
用NumPy genfromtxt导入数据 NumPy provides several functions to create arrays from tabular data. We focus ...
- 【CV】Numpy|Python中矩阵和数组乘法及向量相关问题
在numpy中 一维数组不是向量,但可以通过reshape转换成行向量或者列向量 Numpy库学习--向量表示_o_Eagle_o-CSDN博客 一维数组左乘矩阵时,把数组看做行向量 一维数组右乘矩阵 ...
- Python:numpy生成正态分布的平均数
首先复习一下正态分布(百度百科):https://baike.baidu.com/item/%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83/829892?fr=aladdin ...
最新文章
- 利用Nginx实现简易负载均衡
- springmvc使用和经验总结(长沙师说网络科技有限公司)
- django之Ajax
- Postgresql死锁的处理
- python学习记录(三)
- lwip 开发 sntp 与 tcp 不能同时工作的奇怪问题
- Python基础教程:set集合的教程
- python的作用域分别有几种_python中作用域与函数嵌套
- 性能测试工具Gatling
- PHP,mysql,Linux,CI框架学习总结
- 文件上传流程和协议规范,简,全
- 免疫组库数据分析(三):免疫组库数据可视化
- 久闻大名的Fragment
- BCompare 4 key SN 亲测可用
- 实训...实训...
- C语言·sqrt()的用法
- 2020小红书校招题目知识整理——哈夫曼编码
- 360悬浮球-小贝常规样式
- 服务器系统2012r2升级专业版,Windows Server 2012 R2版本区别
- P1610 鸿山洞的灯(贪心算法)C++
热门文章
- MySQL(二)数据的检索和过滤
- Redis学习之集群(五)
- 06.德国博士练习_08_query_dsl
- 01.elasticsearch metric aggregation 查询
- 前端面试分享:秋招总结(html和css篇)
- 计算机网络实验(华为eNSP模拟器)——第十二章 VLAN集中管理协议(VCMP)
- python asyncio回调函数_python回调函数用法实例分析
- linux性能测试 瓶颈,性能测试——瓶颈分析方法
- 世界上有三样东西不能相信(引用)心胸狭窄的男人勿看
- python selenium定位元素方法,python + selenium 练习篇 - 定位元素的方法