一:修改数组形状
①:使用 reshape()
可以在不改变数据的条件下修改数组形状,格式如下
numpy.reshape(arr, newshape, order='C')
arr
:要修改形状的数组newshape
:整数或者整数数组,新的形状应当兼容原有形状order
:'C' – 按行,'F' – 按列,'A' – 原顺序,'k' – 元素在内存中的出现顺序
举例
a = np.random.randint(0, 100, 9)
print(a)
print("-"*20)
b = a.reshape(3, 3)
c = reshape(a, [3, 3], 'F')
print(b)
print("-"*20)
print(c)
②:使用 flatteen(order = 'C')
可以展开数组
order
:'C' – 按行,'F' – 按列,'A' – 原顺序,'k' – 元素在内存中的出现顺序
举例
a = np.random.randint(0, 10, size=[6, 6])
print(a)
print("-"*20)
b = a.flatten()
c = a.flatten('F')
print(b)
print("-"*20)
print(c)
print("-"*20)
二:翻转数组
①:使用 transpose()
可以对换数组维度,格式如下
numpy.transpose(arr, axes)
arr
:要操作的数组axes
:整数列表,对应维度,通常所有维度都会对换
举例
a = np.random.randint(0, 10, size=[3, 4])
print(a)
print("-"*20)
b = np.transpose(a)
print(b)
②: numpy.rollaxis()
向后滚动特定的轴到一个特定位置,格式如下
numpy.rollaxis(arr, axis, start)
arr
:数组axis
:要向后滚动的轴,其它轴的相对位置不会改变start
:默认为零,表示完整的滚动。会滚动到特定位置
③: numpy.swapaxes()
用于交换数组的两个轴,格式如下
numpy.swapaxes(arr, axis1, axis2)
arr
:输入的数组axis1
:对应第一个轴的整数axis2
:对应第二个轴的整数
举例
a = np.random.randint(0, 10, size=[2, 3, 3])
print(a)
print("-"*20)
b = np.swapaxes(a, 0, 2)
print(b)
三:修改数组维度
①使用 numpy.expand_dims()
通过在指定位置插入新的轴来扩展数组形状,函数格式如下
numpy.expand_dims(arr, axis)
arr
:输入数组axis
:新轴插入的位置
举例
如下,二维数组是(axis0, axis1),三维数组是(axis0, axis1, axis2)。在axis=0处插入轴,所以(3, 3)变为(1, 3, 3);在axis=1处插入轴,所以(3, 3)变为(3, 1, 3)
a = np.random.randint(0, 10, size=[3, 3])
print(a)
print("-"*20)
b = np.expand_dims(a, axis=0)
c = np.expand_dims(a, axis=1)
print(b)
print("-"*20)
print(c)
②: numpy.squeeze()
从给定数组的形状中删除一维的条目,用于降维,函数格式如下
numpy.squeeze(arr, axis)
arr
:输入数组axis
:整数或整数元组,用于选择形状中一维条目的子集
举例
a = np.random.randint(0, 10, size=[1, 3, 3])
print(a)
print("-"*20)
b = np.squeeze(a)
print(b)
四:连接数组
①: numpy.concatenate()
用于沿指定轴连接相同形状的两个或多个数组,格式如下
numpy.concatenate((a1, a2, ...), axis)
a1, a2, ...
:相同类型的数组axis
:沿着它连接数组的轴,默认为 0(简单来说:axis 0向下;axis 1向右)
举例
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.concatenate((a, b), axis=0)
d = np.concatenate((a, b), axis=1)
print(a)
print("-"*20)
print(b)
print("-"*20)
print(c)
print("-"*20)
print(d)
②: numpy.stack()
用于沿新轴连接数组序列,格式如下
numpy.stack(arrays, axis)
arrays
:相同形状的数组序列axis
:返回数组中的轴,输入数组沿着它来堆叠
五:分割数组
①: numpy.split()
可以沿特定的轴将数组分割为子数组,格式如下
numpy.split(ary, indices_or_sections, axis)
ary
:被分割的数组indices_or_sections
:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)axis
:设置沿着哪个方向进行切分,默认为 0,横向切分,即水平方向。为 1 时,纵向切分,即竖直方向
举例
a = np.random.randint(0, 10, size=[2, 4, 4])
print(a)
print("-"*20)
b = np.split(a, 2, 0)
print(b[0])
print("-"*20)
c = np.split(b[0], 2, 1)
print(c)
六:数组元素的添加与删除
①: numpy.resize()
可以返回指定大小的新数组,如果新数组大小大于原始大小,则包含原始数组中的元素的副本
numpy.resize(arr, shape)
arr
:要修改大小的数组shape
:返回数组的新形状
举例
a = np.random.randint(0, 10, size=[2, 3])
print(a)
print("-"*20)
b = np.resize(a, [3, 2])
c = np.resize(a, [3, 3])
print(b)
print("-"*20)
print(c)
②: numpy.append()
可以 在数组的末尾添加值。 追加操作会分配整个数组,并把原来的数组复制到新数组中。 此外,输入数组的维度必须匹配否则将生成 ValueError
;且该函数返回的始终是一个一维数组
numpy.append(arr, values, axis=None)
arr
:输入数组values
:要向arr添加的值,需要和arr形状相同(除了要添加的轴)axis
:默认为 None。当axis无定义时,是横向加成,返回总是为一维数组!当axis有定义的时候,分别为0和1的时候。当axis有定义的时候,分别为0和1的时候(列数要相同)。当axis为1时,数组是加在右边(行数要相同)
举例
a = np.random.randint(0, 10, size=[2, 3])
print(a)
print("-"*20)
b = np.append(a, [np.random.randint(0, 10, 3)])
print(b)
print("-"*20)
c = np.append(a, [np.random.randint(0, 10, 3)], axis=0)
print(c)
print("-"*20)
d = np.append(a, [np.random.randint(0, 10, 3), np.random.randint(0, 10, 3)], axis=1)
print(d)
print("-"*20)
③: numpy.delete()
可以返回从输入数组中删除指定子数组的新数组
Numpy.delete(arr, obj, axis)
arr
:输入数组obj
:可以被切片,整数或者整数数组,表明要从输入数组删除的子数组axis
:沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开
举例
a = np.arange(12).reshape(3, 4)
print(a)
print("-"*20)
b = np.delete(a, 5)
print(b)
print("-"*20)
c = np.delete(a, 1, axis=1)
print(c)
print("-"*20)
Original: https://blog.csdn.net/qq_39183034/article/details/124347296
Author: 我擦我擦
Title: (机器学习-深度学习快速入门)第二章数据分析基本工具Numpy-第四节:Numpy之数组操作
相关阅读
Title: 在jupyter notebook中配置GPU
1. 打开Anaconda Prompt,查看虚拟环境中安装了那些kernel
jupyter kernelspec list
目前环境中有两个环境,一个是我们的base环境,另一个是我们新安装的tensorflowGPU版本。如果要删除新安装的GPU版本,直接按照上面的路径删除文件夹即可。接下来正式在jupyter notebook中配置GPU。
2.打开Anaconda Prompt,安装ipykernel
conda install ipykernel
3.接下来创建ipykernel文件
conda install -n 环境名称 ipykernel
我的GPU版本为tensorflow,所以执行以下命令即可:
conda install -n tensorflow ipykernel
4.进入我们的GPU环境(首先你要有这个环境)
activate 环境名称
我的GPU版本为tensorflow,所以执行以下命令即可:
conda activate tensorflow
出现tensoflow,则说明切换环境成功。
5.在tensorflow环境中导入kernel
python -m ipykernel install --user --name 环境名称
我的GPU版本为tensorflow,所以执行以下命令即可:
python -m ipykernel install --user --name tensorflow
此时,你可以按照上面的路径查看jupyter中是否存在tensorflow这个文件夹
接下来在桌面打开jupyter notebook,查看是否存在新安装的版本
在Anaconda Prompt中输入jupyter notebook
点击Desktop,再点击New,你就看见两个kernel
点击tensorflow,进入到这个GPU版本,输入以下代码检验是否可以运行
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
a = tf.constant(1.)
b = tf.constant(2.)
print(a+b)
print('GPU:', tf.test.is_gpu_available())
出现红色标记说明安装成功!!!!!
Original: https://blog.csdn.net/TYJ00/article/details/124453197
Author: 菜鸟要爱学习
Title: 在jupyter notebook中配置GPU

WT588F02KD-24SS数码管时钟语音播报芯片设计方案

数据分析项目-用户消费行为分析

目标检测网络之 Mask R-CNN

对抗生成网络(GAN)详解

【车牌识别】基于matlab GUI汽车出入库收费系统(带面板)【含Matlab源码 735期】

图像处理技术(二)滤波去噪(下)

李宏毅(2020)作业9:无监督学习降维、聚类、自编码

《MATLAB语音信号分析与合成(第二版)》:第2章 语音信号的时域、频域特性和短时分析技术

利用AssemblyAI的API实现简单的语音识别

【Anaconda】超简单安装教程 Tensorflow OpenCV

【NLP】⚠️学不会打我! 半小时学会基本操作 2⚠️词向量模型简介

3D深度相机调研【史上最全,不服来战】

数据分析笔记-认识数据分析(一)

opencv-python学习笔记-2对比度增强——研0基础学习
