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相关推荐

  1. OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)

    首先是下面代码中将要使用的 r 矩阵的定义.需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内. Mat r = Mat(2, 3, ...

  2. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  3. Python+OpenCV 图像处理系列(8)—— Numpy 对象及图像对象创建与赋值

    1. Numpy 相关知识 1.1 Ndarray 对象 在了解 OpenCV 的图像对象之前我们先对 NumPy 的基础知识做一回顾,方便我们后续更进一步理解图像对象的一系列操作. In [2]: ...

  4. dataframe,python,numpy 问题索引2

    20220330 print(frame3.isnull().any()) 找出存在空值的列 print("========================") print(fra ...

  5. dataframe,python,numpy 问题索引1

    # 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...

  6. 数组的拼接合并 numpy

    Python中numpy数组的合并有很多方法,如 np.append() np.concatenate() np.stack() np.hstack() np.vstack() np.dstack() ...

  7. view(*args)改变张量的大小和形状_pytorch reshape numpy

    20201227 这个方法是在不改变数据内容的情况下,改变一个数组的格式,参数及返回值,官网介绍: a:数组–需要处理的数据 newshape:新的格式–整数或整数数组,如(2,3)表示2行3列,新的 ...

  8. 用NumPy genfromtxt导入数据

    用NumPy genfromtxt导入数据 NumPy provides several functions to create arrays from tabular data. We focus ...

  9. 【CV】Numpy|Python中矩阵和数组乘法及向量相关问题

    在numpy中 一维数组不是向量,但可以通过reshape转换成行向量或者列向量 Numpy库学习--向量表示_o_Eagle_o-CSDN博客 一维数组左乘矩阵时,把数组看做行向量 一维数组右乘矩阵 ...

  10. Python:numpy生成正态分布的平均数

    首先复习一下正态分布(百度百科):https://baike.baidu.com/item/%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83/829892?fr=aladdin ...

最新文章

  1. 利用Nginx实现简易负载均衡
  2. springmvc使用和经验总结(长沙师说网络科技有限公司)
  3. django之Ajax
  4. Postgresql死锁的处理
  5. python学习记录(三)
  6. lwip 开发 sntp 与 tcp 不能同时工作的奇怪问题
  7. Python基础教程:set集合的教程
  8. python的作用域分别有几种_python中作用域与函数嵌套
  9. 性能测试工具Gatling
  10. PHP,mysql,Linux,CI框架学习总结
  11. 文件上传流程和协议规范,简,全
  12. 免疫组库数据分析(三):免疫组库数据可视化
  13. 久闻大名的Fragment
  14. BCompare 4 key SN 亲测可用
  15. 实训...实训...
  16. C语言·sqrt()的用法
  17. 2020小红书校招题目知识整理——哈夫曼编码
  18. 360悬浮球-小贝常规样式
  19. 服务器系统2012r2升级专业版,Windows Server 2012 R2版本区别
  20. P1610 鸿山洞的灯(贪心算法)C++

热门文章

  1. MySQL(二)数据的检索和过滤
  2. Redis学习之集群(五)
  3. 06.德国博士练习_08_query_dsl
  4. 01.elasticsearch metric aggregation 查询
  5. 前端面试分享:秋招总结(html和css篇)
  6. 计算机网络实验(华为eNSP模拟器)——第十二章 VLAN集中管理协议(VCMP)
  7. python asyncio回调函数_python回调函数用法实例分析
  8. linux性能测试 瓶颈,性能测试——瓶颈分析方法
  9. 世界上有三样东西不能相信(引用)心胸狭窄的男人勿看
  10. python selenium定位元素方法,python + selenium 练习篇 - 定位元素的方法