精华内容
下载资源
问答
  • 数组的转置和轴对称

    2020-11-03 23:33:55
    文章目录T属性transpose()方法swapaxes()方法 T属性 import numpy as np # Numpy...# 数组的转置和轴对称 data1 = data.T print(data1) print(data) [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] print(data1) [[ 0 4


    T属性

    import numpy as np  # Numpy工具包
    
    data = np.arange(12).reshape(3, 4)  # 创建一个3行4列的数组
    print(data)
    
    # 数组的转置和轴对称
    data1 = data.T
    print(data1)
    

    print(data)

    [[ 0 1 2 3]
    [ 4 5 6 7]
    [ 8 9 10 11]]

    print(data1)

    [[ 0 4 8]
    [ 1 5 9]
    [ 2 6 10]
    [ 3 7 11]]


    transpose()方法

    二维数组运用 T属性转置较为简单(x->y,y->x),但当操作对象是高维度的数组时,运用transpose()方法可以自由的进行转置(x->y,y->z,z->x || x->z,y->x,z->y),运用transpose时需要得到一个由轴编号组成的元组,才能对这些轴进行转置。

    # transpose()方法
    arr = np.arange(16).reshape((2, 2, 4))  # 每组2个元素组,总共两组,每个元素组里有4个元素
    print(arr)
    print(arr.shape)
    arr1 = arr.transpose(1, 2, 0)  # 变成(2, 4, 2)三维数组,每组4个元素组,总共2组,每个元素组里有2个元素
    print(arr1)
    

    注释名称只是为了方便自己理解瞎写的,三维数组还是按x,y,z理解更好理解

    三维数组有三个轴,每个轴都对应着一个编号,分别为0、1、2。
    由输出可知,arr.shape是(2,2,4),如果希望对arr进行转置操作,就需要对它的shape中的顺序进行调换。也就是说,当使用transpose()方法对数组的shape进行变换时,需要以元组的形式传入shape的编号,比如本例中的(1,2,0)。

    ps:若传入(0,1,2),则数组的shape不会发生任何变化

    print(arr)

    [[[ 0 1 2 3]
    [ 4 5 6 7]]

    [[ 8 9 10 11]
    [12 13 14 15]]]

    为了便于理解贴张图好了
    在这里插入图片描述

    print(arr.shape)

    (2,2,4)

    print(arr1)

    [[[ 0 8]
    [ 1 9]
    [ 2 10]
    [ 3 11]]

    [[ 4 12]
    [ 5 13]
    [ 6 14]
    [ 7 15]]]

    本例中,由(0,1,2)变为(1,2,0)其实也就是我们说的(x->y,y->z,z->x),什么意思呢?
    简单来讲,如果拿第一个元素0来看,不方便解释——以前x0,y0,z0的值等于0,现在x0,y0,z0的值等于0那我们看第二个元素的话,shape为(0,1,2)时,x0,y0,z1的值为1,当shape为(1,2,0)时,x0,y0,z1的值由于(x->y,y->z,z->x)【->前是(0,1,2)中的坐标,->后是(1,2,0)中的坐标】这样的变换,也就是(1,2,0)的x0是(0,1,2)的y0,(1,2,0)的y0是(0,1,2)的z0,(1,2,0)的z1是(0,1,2)的x1,即——8。以此类推。

    如果我们不输入任何参数,直接调用transpose()方法,则其执行的效果等价于transpose(2,1,0)将数组进行转置。


    swapaxes()方法

    在某些情况下,我们可能只需要转换其中的两个轴,这时我们可以使用此方法,该方法需要接收一对轴编号。

    # swapaxes()方法
    arr2 = arr.swapaxes(1, 0)  # 等价于transpose(1, 0, 2)
    print(arr2)
    

    print(arr2)

    [[[ 0 1 2 3]
    [ 8 9 10 11]]

    [[ 4 5 6 7]
    [12 13 14 15]]]

    展开全文
  • 对于QCD,我们分析了质量对重力校正的保护程度,层次层次结构$ f_a \ ll M_P $$ fa≪MP的解释与产生异常耦合所需的有色费米子之间的联系。 胶子,所有胶子都通过基本的规范对称性链接在一起。 基于该模型并与...
  • 我们表明,在对齐的QCD轴心模型中自然可以解释Peccei-Quinn对称性的高品质,其中QCD轴心由多个轴心产生,其衰减常数比轴心窗小得多,例如在弱尺度附近。 即使存在一般的普朗克抑制的Peccei-Quinn对称破坏算子,与...
  • 为研究各向异性对圆孔翻边成形的影响,用TC2Mδ1.5mm钛合金圆板料在室温及600℃高温条件下分别进行了圆孔翻边试验。...本文在给出极限翻边系数结论的同时,对非轴对称畸变现象进行了定量描述、分析与解释
  • 前方高能来了,书上给出的解释是:对于高维数组,transpose需要得到一个由编号组成的元祖才能对这些进行转置。 这句话我翻来覆去读了好几遍,然并卵。后来看了作者的例子才差不多明白。所谓的编号就是对...

    最近在学python的数据分析,于是发现了一本好书《利用python进行数据分析》。说实话前两章不知道作者在说什么(无奈),然后我就直接跳到了第四章(numpy基础:数组和矢量计算),好了,不啰嗦了,正文开始。

    声明:作者用的是python2.7

    转置是重塑的一种特殊形式,他返回的是源数据的视图(不会进行任何复制操作,这一点要和花式索引不太一样,后者总是将数据复制到新数组中)。
    完成转置可以通过三种方式:

    1. transpose方法;
    2. T属性;
    3. swapaxes方法。

    首先要说最简单的T属性,话不多说先放代码

    In [1]: arr = np.arange(15).reshape((3,5))
    In [2]: arr
    out [2]:
    array([[0,1,2,3,4],
           [5,6,7,8,9],
           [10,11,12,13,14]])
    In [3]:arr.T
    out [3]:
    array([[0,5,10],
           [1,6,11],
           [2,7,12],
           [3,8,13],
           [4,9,14]])

    虽然上述内容写在代码块中,但实际上是我按照书上内容手打的。但笔者还是要证明一下,我在本机上验证过,结果同IPython输出。
    上述代码
    In[1]表示将0-14按顺序填入一个三行五列的数组,
    In[3]表示数组转置。
    通过这个例子可以看出其实T属性适用于一,二维数组中。

    那么在高维数组中,我们可以使用transpose方法。前方高能来了,书上给出的解释是:对于高维数组,transpose需要得到一个由轴编号组成的元祖才能对这些轴进行转置。
    这句话我翻来覆去读了好几遍,然并卵。后来看了作者的例子才差不多明白。所谓的轴编号就是对维度进行编号。我们先看例子:

    >>> import numpy as np
    >>> arr = np.arange(16).reshape((2,2,4))
    >>> arr
    array([[[ 0,  1,  2,  3],
            [ 4,  5,  6,  7]],
    
           [[ 8,  9, 10, 11],
            [12, 13, 14, 15]]])
    >>> arr.transpose((1,0,2))
    array([[[ 0,  1,  2,  3],
            [ 8,  9, 10, 11]],
    
           [[ 4,  5,  6,  7],
            [12, 13, 14, 15]]])
      好吧,我还是换回我自己的编辑器了(>>>表示输入,无符号开头表示输出,笔者用的是VS code终端写的),不管了,继续解释。初始arr表示按顺序填入0-15的2*2*4矩阵,通过我之前所说,transpose的轴编号就是将维度编号,所以![维度索引图](https://img-blog.csdn.net/20171103211302929?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hhcm9uSVRsaW9u/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
      而转置实际上就是第一维度和第二维度的转置,所以三维数组的维度索引由0,1,2变成了1,0,2 即后来代码中的transpose((1,0,2))由来
      在补充一点
    
    >>> arr.transpose()
    array([[[ 0,  8],
            [ 4, 12]],
    
           [[ 1,  9],
            [ 5, 13]],
    
           [[ 2, 10],
            [ 6, 14]],
    
           [[ 3, 11],
            [ 7, 15]]])

    如果transpose中未带任何参数则表示和T属性的效果相同, 其实是transpose((2,1,0))完全转置,举个例子5原来的位置是[0,1,1]转置后变为[1,1,0]

    >>> arr.transpose((2,1,0))[1,1,0]
    5
    >>> arr[0,1,1]
    5

    最后来说一下swapaxes 方法,它需要接受两个参数,其实就是他的轴编号。
    如arr.swapaxes(1,2)表示第二三维度变换

    >>> arr.swapaxes(1,2)
    array([[[ 0,  4],
            [ 1,  5],
            [ 2,  6],
            [ 3,  7]],
    
           [[ 8, 12],
            [ 9, 13],
            [10, 14],
            [11, 15]]])

    以6为例[0,1,2]转置后变为[0,2,1]

    >>> arr.swapaxes(1,2)[0,2,1]
    6
    >>> arr[0,1,2]
    6

    说的不好,若有错请指出,谢谢

    展开全文
  • 对称亚麻

    2020-03-27 06:33:21
    它不仅解释了夸克和轻子中的分层风味结构,而且通过将Nambu-Goldstone玻色子识别为QCD突(我们称为亚麻突)解决了强烈的CP问题。 在这项工作中,我们考虑亚麻场景的超对称扩展。 我们研究了由于超对称粒子而...
  • 我们分析了Si~(29)、P~(29)、P~(31)和W~(183)的低激发能谱,发现可以用j=1/2粒子和核心的非轴对称转动耦合的能谱来解释
  • 动态发条

    2020-03-31 18:59:48
    发条机制是一种新颖的方法,可在理论的动态范围和相互作用范围之间产生较大的距离。 我们演示了该机制如何从一系列强耦合扇区中产生。 该框架避免了基本标量字段... 暗物质可以由意外稳定的或最轻的中性重子解释
  • 逆分析的重点是在统一框架()中解释数据,从而实现轴对称统一面向背景的schlieren(AUBOS),并使用贝叶斯推理和先验方法。 安装说明 该程序具有单个依赖项,这些依赖项作为子模块包括在内:可从访问的cmap包。 ...
  • 对称矩阵是指以主对角线为对称轴,各元素对应相等的矩阵。用线性代数书上的解释是:对称矩阵是一个方形矩阵,其转置矩阵和自身相等。 反对称矩阵:反对称矩阵,它的主对角线上的元素全为零,而位于主对角线两侧对称...

    用C语言实现离散数学中对矩阵的简单操作及对矩阵的判断

    判断是否输入的矩阵是否为方阵,在是方阵的基础上判断是否具有对称性,反对称性和自反性。

    对称矩阵:一个方形矩阵,其转置矩阵和自身相等。
    对称矩阵是指以主对角线为对称轴,各元素对应相等的矩阵。用线性代数书上的解释是:对称矩阵是一个方形矩阵,其转置矩阵和自身相等。
    在这里插入图片描述

    反对称矩阵:反对称矩阵,它的主对角线上的元素全为零,而位于主对角线两侧对称的元素反号。线性代数书上解释为:
    在这里插入图片描述

    自反性:关系矩阵的主对角线上元素值全部为1
    反自反性:关系矩阵的主对角线上元素全部为0

    C语言代码实现如下:

    #include<stdio.h>
    #define MAXSIZE 100
    
    void Interrupt(void)//创建一个中断函数 
    {
    	while(1)//用于检测换行符,使函数脱离scanf的连续输出 
    		if(getchar()=='\n')
    			break;
    } 
    
    
    int CreateMatrix(int &m,int &n,int a[MAXSIZE][MAXSIZE])
    {
    	int i,j;
    	printf("请输入矩阵的行数");
    	scanf("%d",&m);
    	Interrupt();
    	printf("请输入矩阵的列数");
    	scanf("%d",&n);
    	Interrupt();
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<m;j++)
    		{
    			printf("请输入矩阵关系中第%d行第%d列的数字:",i,j);
    			scanf("%d",&a[i][j]);
    			Interrupt();
    		}
    	}
    	printf("关系矩阵M为:\n");
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<m;j++)
    			printf("%d ",a[i][j]);
    		printf("\n");
    	}
    	if(m != n)
    	{
    		printf("不是方阵,不能进行操作!\n");
    		return 0;
    	} 
    	return 1;
    }
    
    void Symmetry(int m,int n,int a[MAXSIZE][MAXSIZE])
    {
    	int i,j,c,b,d;
    	c=0;
    	d=0;
    	b=0;
    	d=1;
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<m;j++)
    		{
    			if(a[i][j]!=a[j][i])
    			{
    				c=1;
    				break;
    			}
    		}
    	}
    	if( c == 0 ) 
    		printf("该矩阵是对称性的\n");
    	else
    		printf("该矩阵不是对称性的\n");
    }
    void AntiSymmetric(int m,int n,int a[MAXSIZE][MAXSIZE])
    {
    	int i,j,c,b,d;
    	c=0;
    	d=0;
    	b=0;
    	d=1;
    	for(i=0;i<n;i++)
    	{
    		if(a[i][i]!=0)
    		{
    			c=1;
    			break;
    		}
    	}
    	if(c == 0) 
    		for(i=0;i<n;i++)
    		{
    			for(j=0;j<m;j++)
    			{
    				if(i == j)
    					continue;
    				if(a[i][j] != -a[j][i])
    				{
    					c=2;
    					break;
    				}
    			}
    		}
    	if( c == 0 ) 
    		printf("该矩阵是反对称性的\n");
    	else
    		printf("该矩阵不是反对称性的\n");
    }
    void Reflexivity(int m,int n,int a[MAXSIZE][MAXSIZE])
    {
    	int i,j,c;
    	c=0;
    	for(i=0;i<n;i++)
    	{
    		if(a[i][i]!=0)
    		{
    			c=1;
    			break;
    		}
    	}
    	if(c==0) 
    		printf("该矩阵是自反性的\n");
    	else 
    	{
    		for(i=0;i<n;i++)
    		{
    			if(a[i][i]!=1)
    			{
    				c=2;
    				break;
    			}
    		}
    		if(c==1) 
    			printf("该矩阵是反自反性的\n");
    		else
    			printf("该矩阵既不是自反性的也不是反自反性的\n");
    	}	
    }
    
    int main()
    {
    	int a[MAXSIZE][MAXSIZE];
    	int m, //行数 
    		n,//列数 
    		d;//循环条件 
    	printf("欢迎使用关系性质的判断系统\n\n 1. 对称关系的判断  2. 反对称关系的判断  3. 自反关系的判断\n\n请输入选项:");
    	d = CreateMatrix(m,n,a);
    	while(d)
    	{
    		printf("请选择: ") ;
    		scanf("%d",&d);
    		Interrupt();
    		switch(d)
    		{
    			case 1: Symmetry(m,n,a);break;
    			case 2: AntiSymmetric(m,n,a);break;
    			case 3: Reflexivity(m,n,a);break;
    			case 0: break;
    		}
    	printf("\n");
    	printf("是否还继续?   是请输入1,否请输入0:");
    	scanf("%d",&d);
    	Interrupt();
    	printf("\n\n");
    	}
    }
    

    (完)

    展开全文
  • P5018 对称二叉树

    2019-07-01 18:50:00
    任意一棵对称二叉树,以根节点为,是轴对称的 (QWQ我真的只能解释道这样了) 这道题可以用DFS求解 DFS深搜,size[ x ] 记录以 x 为根的树的大小(也就是以 x 为根的树的所有节点的总数) 当前节点左儿子...

    P5018 对称二叉树

    题解

    什么是对称二叉树,简洁一点就是:

    任意一棵对称二叉树,以根节点为轴,是轴对称的  (QWQ我真的只能解释道这样了)

     

    这道题可以用DFS求解

     

    DFS深搜,size[ x ] 记录以 x 为根的树的大小(也就是以 x 为根的树的所有节点的总数)

    当前节点左儿子非空,继续递归左儿子,右儿子非空,继续递归右儿子

    size[ x ]就等于它自己+左子树大小+右子树大小

     

    当我们判断对称二叉树的时候,可以用到一个check函数

    对于当前节点

    如果左右子树都空,那么一定是对称二叉树

    如果左右子树都非空,而且左右儿子权值相等,继续判断他左儿子的右儿子和右儿子的左儿子是否相等,以及左儿子的左儿子和右儿子的右儿子是否相等,不断递归check,全部满足条件才是对称二叉树,才有机会成为候选答案

    否则的话就不会成为对称二叉树了 

     

     

    代码

    #include<bits/stdc++.h>
    
    using namespace std;
    
    const int maxn=1e6+10;
    int n,ans=-1;
    int tree[maxn],son[maxn][3],size[maxn];
    
    void dfs(int x)
    {
        size[x]=1;
        if(son[x][1]!=-1)
        {
            dfs(son[x][1]);
            size[x]+=size[son[x][1]];
        }
        if(son[x][2]!=-1)
        {
            dfs(son[x][2]);
            size[x]+=size[son[x][2]];
        }
        
    }
    
    bool check(int l,int r)
    {
        if(l==-1&&r==-1) return true;
        if(l!=-1&&r!=-1&&tree[l]==tree[r]&&check(son[l][2],son[r][1])&&check(son[l][1],son[r][2]))
           return true;
        return false;
    }
    
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
          scanf("%d",&tree[i]);
        for(int i=1;i<=n;i++)
          scanf("%d%d",&son[i][1],&son[i][2]);
        
        dfs(1);
        
        for(int i=1;i<=n;i++)
          if(check(son[i][1],son[i][2]))
            ans=max(ans,size[i]);
        
        printf("%d\n",ans);
        
        return 0;
    }

     

    转载于:https://www.cnblogs.com/xiaoyezi-wink/p/11115090.html

    展开全文
  • 力质量和量子信息

    2020-04-21 18:13:42
    我提出了一种将非扰动引力引起的突质量移动与全息原理的量子信息解释联系起来的新颖方法。 本文的主要结果是一种新颖的方式,该方式通过构造全息原理的量子信息解释所使用的张量网络的性质来表达突质量的偏移。 ...
  • HHUOJ 1413 镜面对称

    千次阅读 2019-11-13 21:24:09
    HHUOJ 1413 镜面对称 题目描述 给你一个简单多边形,请你判断这个简单多边形是不是镜面对称的。 输入 输入包含多组测试数据。 每组输入的第一行是一个整数N(3<=N<=500),表示简单多边形有N个顶点。 接下来N...
  • 函数的对称

    千次阅读 2018-10-05 12:59:00
    注意:此时只涉及一个函数,是函数自身具有的对称性,而不是两个函数之间的对称; 1、若函数\(y=f(x)\)关于原点\((0,0)\)对称,则\(f(-x)=-f(x)\)或\(f(x)+f(-x)=0\),反之亦成立; 2、若函数\(y=f(x)\)关于直线\...
  • 对称的二叉树(dfs)

    2019-08-26 12:49:48
    然后题目上说来判断一颗二叉树是不是轴对称的也就是这个意思: 颜色相同表示对称;那么我的整体思路就是去判断左半边是不是右半边的镜像(也就是对称); 那么这个就需要递归来搞定,把他分为左半边和右半边来判断...
  • 突景观中的暗物质

    2020-05-05 10:51:29
    我们研究了其中一种很轻以至于在宇宙学上稳定的可能性,这解释了观察到的暗物质密度。 特别地,我们关注于两个(或多个)移位对称中断项合谋使轴心在电位最小值处足够轻的情况。 在这种情况下,的电位是平底的...
  • 高数中第二类曲线积分上的同向对称和异向对称能帮忙具体解释一下吗?同向对称是指关于对称轴对称并且在对称轴上的的投影相同?还是一段曲线关于对称轴对称并且保持顺时针方向或逆时针方向不变呢?
  • 我们提出了一个QCD力模型,其中通过引入额外的维度来解释PQ对称性的起源和力等曲率扰动的抑制。 每个额外的夸克-反夸克对分别生活在金属皮上,以抑制PQ破坏算子。 充气后,额外尺寸的大小由于充气子和体标量场...
  • 从几何解释SVD分解

    千次阅读 2014-01-14 19:31:51
    SVD分解(奇异值分解),实际上,SVD分解不但很直观,而且极其有用。...它的几何解释可以看做将一个空间进行旋转,尺度拉伸,再旋转三步过程。关于更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.
  • 近保形的超普朗克

    2020-04-10 04:06:38
    我们考虑一个模型,该模型具有两个或两个以上具有共同截止的共形场理论,这些理论通过对角线对称对称性进行链接。 这种构造是扭曲空间的几何形状的双重特征,两个或两个以上的喉咙粘在一个共同的胸骨上。 除了可...
  • 我们建议在标准模型中对Peccei-Quinn对称性进行新的解释,将其识别为轴向B + L对称性,即U(1)PQ≡U(1)γ5(B + L)。 这种新的解释保留了Peccei-Quinn解决方案对强力CP问题的所有吸引人的特征,但同时也导致了...
  • 协方差矩阵的几何解释

    千次阅读 2016-12-25 16:54:35
    然而,方差只能用于解释平行于特征空间方向的数据传播。考虑图2所示的二维特征空间:  对于这个数据,我们可以计算出在x方向上的方差 和y方向上的方差 。然而,数据的水平传播和垂直传播不能解释明显的对...
  • Symmetric Tree(对称树)

    千次阅读 2013-10-22 10:15:19
    题目要求判断一棵树是否是对称的树,对称的树的性质直观来说就是从以根为纵轴,左子树与右子树成轴对称。不知道怎么解释 不过这个题目不能用 递归的方法解,因为这个树不具有子问题的性质,如果这个树是对称的,...
  • 解决强CP问题的PQ机制和解释中微子质量小的跷跷板机制可能以PQ对称破坏规模和跷跷板规模起源于共同点的方式联系在一起。 取决于如何实现PQ对称性和跷跷板机制,人们对颜色和电磁异常的预测不同,可以在将来的突暗...
  • numpy.transpose清晰解释

    2019-11-08 10:32:33
    在网上查看numpy.transpose()函数时发现很多人以轴对称和转秩来解释多维数组的tanspose,后发现一个简单清晰的解释方法,特此记录供大家查阅。 对于简单的二维矩阵而言,无论是以转秩/变换都很容易理解,上代码 ...
  • 物体的碰撞检测是游戏...有很多算法可以实现碰撞检测,基于算法几何的方法有轴对称包围盒算法(Axis-aligned Bounding Box,AABB)、方向包围盒算法(Oriented Bounding Box,OBB)、分离算法(Separating Axis T...
  • RPV术语引入了微小的突-中微子混合,并提供了突DM作为无菌中微子DM的变体,解释了3.5 keV X射线线过量。 Axinos是通过冻结过程通过μ项产生的。 所得的相空间分布往往比费米-狄拉克分布更冷。 后期的萨克斯衰变...
  • 函数的对称性的常用结论

    千次阅读 2017-02-19 10:55:00
    一、预备知识 ①设点\(P(a,b)\),则点\(P\)关于...②有关轴对称的概念 二、函数自身对称 注意:只涉及一个函数; 1、若函数\(y=f(x)\)关于原点\((0,0)\)对称,则\(f(-x)=-f(x)\)或\(f(x)+f(-x)=0\),反之亦成立...
  • ,最低点是(0,1),在Ⅰ象限部分是严格单调递增曲线,函数图像关于y轴对称。 y=tanh x,定义域:R,值域:(-1,1),奇函数,函数图像为过原点并且穿越Ⅰ、Ⅲ象限的严格单调递增曲线,其图像被限制在两水平 渐近...
  • 解释性机器学习:从入门到实战

    千次阅读 多人点赞 2019-12-09 19:43:53
    机器学习的巨大成功导致AI应用的... 但是,这些系统如果无法向人类解释为何作出这样的决策,那么它们的有效性将会受到限制。如果用户要理解,信任和有效管理新兴的人工智能”合作伙伴“,那么可解释的AI将至关重要。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,430
精华内容 4,572
关键字:

对称轴的解释