numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组

numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组

import numpy as np

使用array对象


arr1=np.arange(12).reshape(3,4)
print(arr1)
print(type(arr1))
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
<class ‘numpy.ndarray‘>
  • flatten 展平
a=arr1.flatten()
# 默认参数order=C,按照行进行展平;order=F,按照列进行展平,交叉展平;
#A 或K参数用的不多,顾不变多记,到时候找到会用即可
a[2]=1000
print(arr1)  # arr1 并没有改变,flatten 返回的是copy
a
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

array([   0,    1, 1000,    3,    4,    5,    6,    7,    8,    9,   10,
         11])
  • reshape 变换
arr1=np.arange(12).reshape(3,4)
b=arr1.reshape(-1)  #  b=arr1.reshape((-1)) 等同的效果意义 ,
b[2]=1000
print(arr1)# 返回的是视图view
[[   0    1 1000    3]
 [   4    5    6    7]
 [   8    9   10   11]]
  • ravel 变换
arr1=np.arange(12).reshape(3,4)
c=arr1.ravel()
c
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
c[2]=10001
arr1  # 返回的是视图view
array([[    0,     1, 10001,     3],
       [    4,     5,     6,     7],
       [    8,     9,    10,    11]])
  • resize
arr1=np.arange(12).reshape(3,4)
arr1.resize((4,3))  #  无返回值,即会对原始多维数组直接进行修改,也就是不能赋值
arr1
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])

对matrix对象进行操作

# 使用matrix对象的时候,返回的仍是matrix,得不到想要的结果,不过该matrix仍然可以使用numpy中的一些方法对其操作,比如sum,min,max等等
d=np.matrix(np.arange(12).reshape(3,4))
d
matrix([[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]])
d.flatten()# 
matrix([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11]])

原文地址:https://www.cnblogs.com/onemorepoint/p/9551762.html

时间: 2024-10-11 16:59:36

numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组的相关文章

numpy中的reshape中参数为-1

上篇文章中的reshape(-1,2),有的时候不明白为什么会有参数-1,可以通过查找文档中的reshape()去理解这个问题 根据Numpy文档(https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html#numpy-reshape)的解释: newshape : int or tuple of intsThe new shape should be compatible with the original s

php中把二维数组变成一维数组

$data= $this->db->query("SELECT userid FROM `qx`")->result_array();//这是qx表中所有userid 的数据 $result= $this->db->query("SELECT userid FROM `user`")->result_array(); //这是user表中所有userid的数据 $userdata = array_column($data,'use

numpy中的matrix矩阵处理

numpy模块中的矩阵对象为numpy.matrix,包括矩阵数据的处理,矩阵的计算,以及基本的统计功能,转置,可逆性等等,包括对复数的处理,均在matrix对象中. class numpy.matrix(data,dtype,copy):返回一个矩阵,其中data为ndarray对象或者字符形式:dtype:为data的type:copy:为bool类型. >>> a = np.matrix('1 2 7; 3 4 8; 5 6 9') >>> a          

Python Numpy中的几个矩阵乘法

数学上的内积.外积和叉积 内积 也即是:点积.标量积或者数量积 从代数角度看,先对两个数字序列中的每组对应元素求积,再对所有积求和,结果即为点积.从几何角度看,点积则是两个向量的长度与它们夹角余弦的积. 具体解释 外积 也即是:张量积 在线性代数中一般指两个向量的张量积,其结果为一矩阵,也就是矩阵乘法 具体解释 叉积 也即是:向量积 叉积axb得到的是与a和b都垂直的向量 具体解释 Numpy中的矩阵乘法 np.dot() 对于二维矩阵,计算真正意义上的矩阵乘积:对于一维矩阵,计算两者的内积.(

numpy中的浅复制和深复制

浅复制:主要有两种方式,简单的赋值或者使用视图(view) 简单的赋值:其实就是制造了一个别名,数组并没有被copy成新的一份,当使用其中一个别名改变数组值的时候,另一个别名对应的值一并改变. >>>a = np.arange(12) >>>a array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) >>>b = a >>>b is a True >>>b.shape = 3,4

一维数组中元素反向[::-1]

[::-1] 数组中元素反向 觉得有用的话,欢迎一起讨论相互学习~Follow Me 一维数组反向[::-1] import numpy as np a = np.arange(8) print ("生成0-19之间的数组",a) # 一维数组反向 a1 = a[::-1] print("将a数组反向",a1) # 生成0-19之间的数组 [0 1 2 3 4 5 6 7] # 将a数组反向 [7 6 5 4 3 2 1 0] 高维数组[::-1]没有反向效果 #

C#中定义数组--字符串及数组操作

一.一维: int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[] numbers = new int[3]{1,2,3};//定长 二.多维 int[,] numbers = new int[,]{{1,2,3},{1,2,3}}; //不定长 int[,] numbers = new int[2,2]{{1,2},{1,2}}; //定长 三.例子 A:int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值; //包

c语言中如何通过二级指针来操作二维数组

通过二级指针去访问二维数组需要先给二级指针分配等同于二维数组行数的一维数组指针,然后把二维数组的每行首地址赋值给对应位置的一维指针上.之后就可以通过二维指针直接访问了. 参考代码如下,可以看具体注释辅助理解. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include <stdio.h>//输入输出头文件. #include <stdlib.h>//本程序需要用到malloc/free函数,引

Numpy中的shape和reshape()

shape是查看数据有多少行多少列reshape()是数组array中的方法,作用是将数据重新组织 1.shape import numpy as np a = np.array([1,2,3,4,5,6,7,8]) #一维数组 print(a.shape[0]) #值为8,因为有8个数据 print(a.shape[1]) #IndexError: tuple index out of range a = np.array([[1,2,3,4],[5,6,7,8]]) #二维数组 print(