下面讨论
把多种情况下的数组转化为一维数组的方法
1.
flatten函数
能将多维数组变成一位数组
2.
concatenate函数
是用于数组的连接操作,可将多个一维数组连接为一维数组
下面来看示例:
1.使用
flatten函数
将多维数组变成一位数组
arr4=np.array([[65,76,89,91],[31,42,45,61]],float)
Out[7]:
array([[ 65., 76., 89., 91.],
[ 31., 42., 45., 61.]])
arr4.flatten()
Out[8]: array([ 65., 76., 89., 91., 31., 42., 45., 61.])
2.使用
concatenate函数
多个一维数组连接为一维数组
import numpy as np
arr1=np.array([10,22],float)
arr2=np.array([31,42,45,61],float)
arr3=np.array([65,76,89,91],float)
np.concatenate((arr1,arr2,arr3))
Out[5]: array([ 10., 22., 31., 42., 45., 61., 65., 76., 89., 91.])
3.使用
concatenate函数
实现
flatten函数
的功能
可用于多维函数选出某几维连接成一维数组
np.concatenate((arr4[0],arr4[1]))
Out[9]: array([ 65., 76., 89., 91., 31., 42., 45., 61.])
下面讨论把多种情况下的数组转化为一维数组的方法 1.flatten函数能将多维数组变成一位数组 2.concatenate函数是用于数组的连接操作,可将多个一维数组连接为一维数组 下面来看示例: 1.使用flatten函数将多维数组变成一位数组arr4=np.array([[65,76,89,91],[31,42,45,61]],float)arr4Out[7]: array(...
将
numpy
多维
数组
转
换为
一维数组
有两种
方法
使用reshape()函数,这个
方法
是间接法,利用reshape()函数的属性,间接的把
二维
数组
转
换为
一维数组
使用flatten()函数, 推荐使用这个
方法
,这个
方法
是
numpy
自带的函数
import
numpy
as np
arr = np.arange(12).reshape(3, 4)
print(arr)
d_1 = arr.flatten()
print(d_1)
print("------------------------")
标准安装的
Python
中
用列表(list)保存一组值,可以用来当作
数组
使用,不过由于列表的元素可以是任何对 象,因此列表
中
所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有 3 个指针和三个整数对象。 对于数值运算来说这种结构显然比较浪费内存和 CPU 计算时间。
虽然
Python
还提供了一个 array 模块,array 对象和列表不同,它直接保存数值,和 C 语言的
一维数组
比较类 似。但是由于它不支持
多维
,也没有各种运算函数,因此也不适合做数值运算。
Python
现在是最热门的人工智能语言,各种工具的支持如Google的Tensorflow,都是首选支持
Python
的。
但是,与R语言不同,
Python
语言设计时,并没有考虑对于矩阵运算,统计计算等功能做专项支持。于是我们需要
NumPy
库来补足这一能力上的不足。
NumPy
是
Python
的著名扩展库,相当于
Python
中
的MATLAB。
Numpy
中
,ndarray 类具有六个参数,它们分别为:
shape:
数组
的形状。
dtype:数据类型。
buffer:对象暴露缓冲区接口。
offset:
数组
数据的偏移量。
strides:数据步长。
order:{‘C
NumPy
(Numerical
Python
) 是
Python
语言的一个扩展程序库,支持大量的维度
数组
与矩阵运算,此外也针对
数组
运算提供大量的数学函数库。今天就针对
多维
数组
展开来写博客
numpy
其一部分功能如下:
1.ndarray,是具有矢量算术运算且节省空间的
多维
数组
。
2.可以用于对整组的数据快速进行运算的辨准数学函数。
3.能够用于读写磁盘数据的工具以及用于操作系统内存映射的工具。
NumPy
它本身其实没有提供很高级别的数据分析功能,
NumPy
之于数值计算特别重要的原因之一,就是因为它能够高效的处理大
数组
的数据。这是因为:
1.
NumPy
是在一个连续的内存块
中
存储数据,独立于其他的
现在我们有一个shape为(7352, 9, 128, 1)的
numpy
数组
。
想要取出第2维的前三个数据,构成新
数组
(7352, 3, 128, 1)
我的思想是:将第2维数据
转
置(transpose)到第
一维
,再用切片(slice)取出前三个数据,再
转
置回去:
print(# original, input.shape)
input_transpose = input.transpose((1, 0, 2, 3))
print(# transpose, input_transpose.shape)
input_slice = input_transpose[0:3]
print(