精华内容
下载资源
问答
  • Python numpy.transpose 详解

    万次阅读 多人点赞 2017-12-27 15:20:44
    前言看Python代码时,碰见 numpy.transpose 用于高维数组时挺让人费解,通过一番画图分析和代码验证,发现 transpose 用法还是很简单的。 正文Numpy 文档 numpy.transpose 中做了些解释,transpose 作用是改变序列,...

    前言

    看Python代码时,碰见 numpy.transpose 用于高维数组时挺让人费解,通过一番画图分析和代码验证,发现 transpose 用法还是很简单的。

    注:评论中说的三维坐标图中的 0 1 2 3 标反了,已经修正,感谢大家提醒(2019.02)。

    正文

    Numpy 文档 numpy.transpose 中做了些解释,transpose 作用是改变序列,下面是一些文档Examples:


    代码1:

    x = np.arange(4).reshape((2,2))
    

    输出1:

    #x 为:
    array([[0, 1],
           [2, 3]])
    

    代码2:

    import numpy as np
    x.transpose()
    

    输出2:

    array([[0, 2],
           [1, 3]])
    

    对于二维 ndarray,transpose在不指定参数是默认是矩阵转置。如果指定参数,有如下相应结果:
    代码3:

    x.transpose((0,1))
    

    输出3:

    # x 没有变化
    array([[0, 1],
           [2, 3]])
    

    代码4:

    x.transpose((1,0))
    

    输出4:

    # x 转置了
    array([[0, 2],
           [1, 3]])
    

    这个很好理解:
    对于x,因为:

    代码5:

    x[0][0] == 0
    x[0][1] == 1
    x[1][0] == 2
    x[1][1] == 3
    

    我们不妨设第一个方括号“[]”为 0轴 ,第二个方括号为 1轴 ,则x可在 0-1坐标系 下表示如下:
    这里写图片描述

    代码6:

    因为 x.transpose((0,1)) 表示按照原坐标轴改变序列,也就是保持不变
    而 x.transpose((1,0)) 表示交换 ‘0轴’ 和 ‘1轴’,所以就得到如下图所示结果:
    

    这里写图片描述

    注意,任何时候你都要保持清醒,告诉自己第一个方括号“[]”为 0轴 ,第二个方括号为 1轴
    此时,transpose转换关系就清晰了。


    我们来看一个三维的:
    代码7:

    import numpy as np
    
    # A是array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])
    A = np.arange(16)
    
    # 将A变换为三维矩阵
    A = A.reshape(2,2,4)
    print(A)
    

    输出7:

    A = array([[[ 0,  1,  2,  3],
                [ 4,  5,  6,  7]],
                
               [[ 8,  9, 10, 11],
                [12, 13, 14, 15]]])
    

    我们对上述的A表示成如下三维坐标的形式:

    在这里插入图片描述

    所以对于如下的变换都很好理解啦:
    代码8:

    A.transpose((0,1,2))  #保持A不变
    A.transpose((1,0,2))  #将 0轴 和 1轴 交换
    

    0轴 1轴 交换:

    在这里插入图片描述
    此时,输出

    代码9:

    A.transpose((1,0,2)) [0][1][2]	#根据上图这个结果应该是10
    

    后面不同的参数以此类推。

    完。
    已移步知乎,欢迎关注哈。工作之余会更新。
    知乎主页

    展开全文
  • python numpy

    2021-01-21 16:55:00
    python numpynumpy数据类型(数组)的介绍数组与列表的区别数组支持矩阵运算数组对象的属性数组对象的元素类型 .dtype数组的简单操作数组创建相关数组切片及简单运算数组的存取操作数据的csv文件存取多维数据的存取...
  • 使用python Numpy

    2018-11-11 15:58:10
    使用python Numpy
  • python numpy 测试代码

    2018-10-29 11:20:45
    python numpy 测试代码,简单的例子,学习使用,包含数据
  • NumpyPython的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。这篇文章主要介绍了Python numpy 常用函数总结,需要的朋友可以参考下
  • NumPyPython编程语言的库.NumPy基本上是数字Python。 它增加了对大型多维数组和矩阵的支持,以及对这些数组进行操作的大量高级数学函数的集合。 NumPy 99%的时间用于数组处理。 NumPy通过提供多维数组以及在数组...
  • 主要介绍了python numpy实现rolling滚动案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇Python Numpy 自然数填充数组的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇python numpy 按行归一化的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python numpy 中linspace函数

    万次阅读 多人点赞 2019-08-16 13:10:18
    python numpy 中linspace函数 numpy提供linspace函数(有时也称为np.linspace)是python中创建数值序列工具。与Numpy arange函数类似,生成结构与Numpy 数组类似的均匀分布的数值序列。两者虽有些差异,但大多数人更...

    python numpy 中linspace函数

    numpy提供linspace函数(有时也称为np.linspace)是python中创建数值序列工具。与Numpy arange函数类似,生成结构与Numpy 数组类似的均匀分布的数值序列。两者虽有些差异,但大多数人更愿意使用linspace函数,其很好理解,但我们需要去学习如何使用。

    本文我们学习linspace函数及其他语法,并通过示例解释具体参数。最后也顺便提及np.linspace 和 np.arange之间的差异。

    1. 快速了解

    通过定义均匀间隔创建数值序列。其实,需要指定间隔起始点、终止端,以及指定分隔值总数(包括起始点和终止点);最终函数返回间隔类均匀分布的数值序列。请看示例:

    np.linspace(start = 0, stop = 100, num = 5)
    

    代码生成 NumPy 数组 (ndarray 对象),结果如下:array([ 0., 25., 50., 75., 100.])
    如图:
    在这里插入图片描述

    让我们解释下,Numpy linspace函数依照定义间隔生成均匀分布的数值。我们使用start和stop参数指定间隔,这里我们设定为0和100,同时指定在范围内生产5个观测值,因此函数生成5个均匀分布的元素。第一个是0,最后一个100,其他三个分布在0和100之间。

    下面我们详细看下linspace函数的参数,让你更清楚理解其机制。

    2. linspace函数语法

    linspace的语法非常简单直接。如下图所示,首先是函数名称,对应代码为 np.linspace (假设你已导入importe NumPy as np)。
    在这里插入图片描述
    图2

    上图有三个参数,是平常使用最频繁的三个参数。还有其他的可选参数,下面我们讨论其参数。
    为了理解参数,我们再次看图示:

    在这里插入图片描述

    start
    start 参数数值范围的起始点。如果设置为0,则结果的第一个数为0.该参数必须提供。

    stop
    stop 参数数值范围的终止点。通常其为结果的最后一个值,但如果修改endpoint = False, 则结果中不包括该值(后面示例会说明)。

    num (可选)
    num 参数控制结果中共有多少个元素。如果num=5,则输出数组个数为5.该参数可选,缺省为50.

    endpoint (可选)
    endpoint 参数决定终止值(stop参数指定)是否被包含在结果数组中。如果 endpoint = True, 结果中包括终止值,反之不包括。缺省为True。

    dtype (可选)
    和其他的 NumPy 一样, np.linspace中的dtype 参数决定输出数组的数据类型。如果不指定,python基于其他参数值推断数据类型。如果需要可以显示指定,参数值为NumPy 和 Python支持的任意数据类型。

    我们并不需要每次都使用所有参数,如果缺省值可以满足我们需求。一般start, stop, num 比 endpoint 和 dtype常用。

    位置参数 vs 命名参数

    实际调用时无需显示指定参数名称,可以通过参数位置直接匹配:

    np.linspace(0, 100, 5)
    

    上面代码和前面示例的功能一样:np.linspace(start = 0, stop = 100, num = 5)
    前者使用位置匹配,后者使用名称匹配。位置匹配让代码简捷,名称匹配使代码更可读,实际应用中我们鼓励使用名称匹配调用函数。

    3. 示例

    下面通过示例学习每个参数含义。

    3.1 从0到1,间隔为0.1的数值序列

    np.linspace(start = 0, stop = 1, num = 11)
    

    输出结果为:

    array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ])
    

    当你需要百分比场景时比较有用。

    3.2 从0 到 100,间隔为10的数值序列

    np.linspace(start = 0, stop = 100, num = 11)
    

    输出结果为:

    array([  0.,  10.,  20.,  30.,  40.,  50.,  60.,  70.,  80.,  90., 100.])
    

    该示例和前面一样,只是实际应用很常用。

    3.3 使用 endpoint 参数

    前文提到,endpoint 参数决定终止值是否被包含在结果数组中。缺省为True,即包括在结果中,反之不包括,请看示例:

    np.linspace(start = 1, stop = 5, num = 4, endpoint = False)
    

    因为endpoint = False,5不在结果中。结果为1到4。

    array([ 1.,  2.,  3.,  4.])
    

    个人认为该参数不够直接,平时一般不使用。

    3.4 手动指定数据类型

    默认linspace根据其他参数类型推断数据类型,很多时候,输出结果为float类型。如果需要指定数据类型,可以通过dtype设置。该参数很直接,除了linspace其他函数也一样,如:np.array,np.arange等。示例:

    np.linspace(start = 0, stop = 100, num = 5, dtype = int)
    

    这里dtype为int,结果为int类型,而不是float类型。

    4. 总结

    本文我们通过示例学习了linspace函数。如果你熟悉NumPy,一定也注意到还有np.arange函数。两者最大差异是,linspace能够精确控制终止值终值,而arange能够更直接地控制序列中值之间的增量。

    展开全文
  • 主要介绍了计算Python Numpy向量之间的欧氏距离实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 如下所示: import numpy as np K=4 a = np.array([0, 8, 0, 4, ... 您可能感兴趣的文章:python numpy和list查询其中某个数的个数及定位方法Python numpy 常用函数总结浅谈numpy数组的几种排序方式python中找出numpy a
  • python numpy 数据类型转换

    万次阅读 多人点赞 2018-02-07 09:44:40
    python numpy 数据类型转换 numpy数据类型转换需要调用方法astype(),不能直接修改dtype。调用astype返回数据类型修改后的数据,但是源数据的类型不会变,需要进一步对源数据的赋值操作才能改变。例如 >>> a=np....

    python numpy 数据类型转换

    numpy数据类型转换需要调用方法astype(),不能直接修改dtype。调用astype返回数据类型修改后的数据,但是源数据的类型不会变,需要进一步对源数据的赋值操作才能改变。例如

    >>> a=np.array([1.1, 1.2])
    >>> a.dtype
    dtype('float64')
    >>> a.astype(np.int16)
    array([1, 1], dtype=int16)
    >>> a.dtype
    dtype('float64') #a的数据类型并没有变
    >>> a=a.astype(np.int16) #赋值操作后a的数据类型变化
    >>> a.dtype
    dtype('int16')
    >>> a
    array([1, 1], dtype=int16)

    直接修改dtype数据会强制用新数据类型表示,并没有转换,因此输出错误数据

    >>> a=np.array([1.1, 1.2])
    >>> a.dtype
    dtype('float64')
    >>> a.dtype=np.int16
    >>> a.dtype
    dtype('int16') 
    >>> a
    array([-26214, -26215, -26215,  16369,  13107,  13107,  13107,  16371], dtype=int16)
    #原来float64相当于4个int16的位宽,这样强制转换后会将他们直接拆开成4个数,
    #因此原来的两个float64成了8个int16
    展开全文
  • 本文实例讲述了Python Numpy库安装与基本操作。分享给大家供大家参考,具体如下: 概述 NumPy(Numeric Python)扩展包提供了数组功能,以及对数据进行快速处理的函数。 NumPy 通常与 SciPy(Scientific Python)和 ...
  • Python Numpynumpy.corrcoef()函数讲解

    万次阅读 多人点赞 2019-03-31 17:57:18
    import numpy as np Array1 = [[1, 2, 3], [4, 5, 6]] Array2 = [[11, 25, 346], [734, 48, 49]] Mat1 = np.array(Array1) Mat2 = np.array(Array2) correlation = np.corrcoef(Mat1, Mat2) print("矩阵...

    例子:

    代码:

    import numpy as np
    
    Array1 = [[1, 2, 3], [4, 5, 6]]
    Array2 = [[11, 25, 346], [734, 48, 49]]
    Mat1 = np.array(Array1)
    Mat2 = np.array(Array2)
    correlation = np.corrcoef(Mat1, Mat2)
    print("矩阵1=\n", Mat1)
    print("矩阵2=\n", Mat2)
    print("相关系数矩阵=\n", correlation)
    

     结果:

    矩阵1=
     [[1 2 3]
     [4 5 6]]
    矩阵2=
     [[ 11  25 346]
     [734  48  49]]
    相关系数矩阵=
     [[ 1.          1.          0.88390399 -0.86539304]
     [ 1.          1.          0.88390399 -0.86539304]
     [ 0.88390399  0.88390399  1.         -0.53057867]
     [-0.86539304 -0.86539304 -0.53057867  1.        ]]
    
    Process finished with exit code 0

    可以看出函数的返回值还是一个矩阵

    结果矩阵的行数*结果矩阵的列数==矩阵1的行数*矩阵2的行数

    令:

         0=[1 2 3]    1=[4 5 6]    2=[11 25 346]    3=[734 48 49] 

    矩阵中值的意义:

                           0列                          1列                             2列                             3列

    0行             0 0 相关性             0 1 相关性                  0 2 相关性                  0 3 相关性      

    1行             1 0 相关性             1 1 相关性                  1 2 相关性                  1 3 相关性   

    2行             2 0 相关性             2 1 相关性                  2 2 相关性                   2 3 相关性   

    3行             3 0 相关性             3 1 相关性                  3 2 相关性                   3 3 相关性   

     

    自己和自己的相关性最大,值为1,所以对角线的值全为1.

    展开全文
  • 如下所示: import numpy ... 您可能感兴趣的文章:python二维列表一维列表的互相转换实例Pythonnumpy库中将矩阵转换为列表等函数的方法python的dataframe转换为多维矩阵的方法Python嵌套列表转一维的方法(压
  • 今天小编就为大家分享一篇Python numpy实现二维数组和一维数组拼接的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python numpy 提取矩阵的某一行或某一列

    万次阅读 多人点赞 2017-07-01 22:13:11
    import numpy as np a=np.arange(9).reshape(3,3) a Out[31]: array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])    &...
  • python numpy中的复制(copy)

    万次阅读 2019-08-31 22:53:23
    使用python numpy中的数组复制 在使用python时我们经常会处理数组,有的时候是复制有的时候不是,这里也是初学者最容易误解的地方,简单讲,可以分为下面三种情况: 不是复制的情况(No Copy at All) import numpy ...
  • 下面小编就为大家分享一篇Python numpy 提取矩阵的某一行或某一列的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python numpy 点数组去重

    千次阅读 2018-02-26 22:15:51
    Python numpy 点数组去重 废话不多说,直接上代码,有详细注释 # coding = utf-8 import numpy as np from IPython import embed # xy 输入,可支持浮点数操作 速度很快哦 # return xy 去重后结果 def duplicate...
  • python numpy和list查询其中某个数的个数及定位

    万次阅读 多人点赞 2017-12-21 11:16:09
    python numpy和list查询其中某个数的个数及定位
  • Python numpy数组中值的替换

    万次阅读 多人点赞 2019-03-26 10:21:36
    import numpy as np a = np.array([[1,2,0],[4,0,1],[0,5,0]]) a[a==0] = 1 print(a) 输出: [[1 2 1] [4 1 1] [1 5 1]] 例2.置换数组中的负值。 输入: import numpy as np b = np.array([[-1,2,0]...
  • 这次给大家带来Python numpy怎么提取矩阵的指定行列,Python numpy提取矩阵指定行列的注意事项有哪些,下面就是实战案例,一起来看一下。 如下所示: import numpy as np a=np.arange(9).reshape(3,3) a Out[31]:...
  • python numpy 数组如何对每个元素进行操作

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 517,241
精华内容 206,896
关键字:

pythonnumpy

python 订阅