numpy ndarray 交换多维数组(矩阵)的行/列

>> import numpy as np
>> P = np.eye(3)
>> P
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

交换第 0 行和第 2 行:

>> P[[0, 2], :] = P[[2, 0], :]
        # P[(0, 2), :] = P[(2, 0), :]
>> P
array([[ 0.,  0.,  1.],
       [ 0.,  1.,  0.],
       [ 1.,  0.,  0.]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

再交换第一列和第三列:

>> P[:, [0, 2]] = P[:, [2, 0]]
>> P
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意以下是错误的做法:

>> P[0, :], P[2, :] = P[2, :], P[0, :]
>> P
array([[ 0.,  0.,  1.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])

        # 不尽写出来啰嗦,而且代表的意义也不是交换
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/siwnhwxh/p/10331937.html

时间: 2024-11-05 16:06:55

numpy ndarray 交换多维数组(矩阵)的行/列的相关文章

np.newaxis 为 numpy.ndarray(多维数组)增加一个轴

>> type(np.newaxis) NoneType np.newaxis 在使用和功能上等价于 None,其实就是 None 的一个别名. 1. np.newaxis 的实用 >> x = np.arange(3) >> x array([0, 1, 2]) >> x.shape (3,) >> x[:, np.newaxis] array([[0], [1], [2]]) >> x[:, None] array([[0], [

NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构

本文摘自<用Python做科学计算>,版权归原作者所有. 上一篇讲到:NumPy-快速处理数据--ndarray对象--数组的创建和存取 接下来接着介绍多维数组的存取.结构体数组存取.内存对齐.Numpy内存结构 一.多维数组的存取 多维数组的存取和一维数组类似,因为多维数组有多个轴,因此它的下标需要用多个值来表示,NumPy采用组元(tuple)作为数组的下标.如二维数组需要(x, y)的元组标记一个数组元素:三维数组需要(x, y, z)的元组标记一个元素. 如下图所示,a为一个6x6的二

python 按二维数组的某行或列排序 (numpy lexsort)

lexsort支持对数组按指定行或列的顺序排序:是间接排序,lexsort不修改原数组,返回索引. 默认按最后一行元素有小到大排序, 返回最后一行元素排序后索引所在位置. 设数组a, 返回的索引ind, a可以是1维或2维数组,ind返回的是一维数组 对于一维数组, a[ind]就是排序后的数组. 对于二维数组下面会详细举例. import numpy as np >>> a array([[ 2,  7,  4,  2], [35,  9,  1,  5], [22, 12,  3, 

numpy ndarray 按条件筛选数组,关联筛选

转:http://http://blog.csdn.net/blackyuanc 作者:y小川 https://blog.csdn.net/blackyuanc/article/details/77948703 最近的项目中大量涉及数据的预处理工作,对于ndarray的使用非常频繁.其中ndarray如何进行数值筛选,总结了几种方法. 1.按某些固定值筛选 如下面这段代码从,ndarray中可以筛选出数值等于3的子数组和其在原数组中的索引位置. import numpy as np arr =

解决二维数组矩阵闭环数字的替换

如下,存在矩阵形如: 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 9 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0

交换二维数组的两行

nclude <stdio.h>void c(int b[][4],int i,int j)//int 后面必须返回一个值  例如最后return0; { int k,t; for(t=0;t<4;t++) { k=b[i][t]; b[i][t]=b[j][t]; b[j][t]=k; }}int main(){ int i,j,a[3][4]={{1,1,1,1},{2,2,2,2},{3,3,3,3}}; c(a,1,2); for(i=0;i<3;i++) { for(j=

Python中2维数组/矩阵转化为字典(矩阵中第一列含有重复元素)??

例如将a=[[3,789],[1,100],[1,102],[2,102],[1,106],[2,456]];转化为一个字典b={1:[100,102,102],2:[102,456],3:[789]} 如果用强制转换: 1 >>> a=[[3,789],[1,100],[1,102],[2,102],[1,106],[2,456]]; 2 >>> b=dict(a) 3 >>> b 4 {1: 106, 2: 456, 3: 789} 5 >&

杨氏矩阵(二维数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字)

题目要求时间复杂度小于O(N) #include<stdio.h> int find(int arr[][3], int *px, int *py,int key) { int x = 0; int y = *py - 1; while ((x < *px) && (y >= 0)) { if (arr[x][y] == key) { //下标由指针带回 *px = x; *py = y; return 0; } else if (arr[x][y] < ke

php二维数组按照某一列排序的方法

/**  * 二维数组排序方法,数字的倒叙排列  * @param arr  * @param field  */ function sortArrByField(&$array, $field, $desc = false){ $fieldArr = array(); foreach ($array as $k => $v) { $fieldArr[$k] = $v[$field]; } $sort = $desc == false ? SORT_ASC : SORT_DESC; arra