numpy 的newaxis 和 concatenate函数应用解释及应用举例

简介: numpy 的newaxis 和 concatenate函数应用解释及应用举例

numpy 的newaxis 和 concatenate函数应用


1.np.newaxis()


np.newaxis 的功能是增加新的维度,但是要注意 np.newaxis 放的位置不同,产生的矩阵形状也不同。


通常按照如下规则:


np.newaxis 放在哪个位置,就会给哪个位置增加维度

x[:, np.newaxis] ,放在后面,会给列上增加维度 x[np.newaxis, :] ,放在前面,会给行上增加维度


用途: 通常用它将一维的数据转换成一个矩阵,这样就可以与其他矩阵进行相乘。

例1:这里的 x 是一维数据,其 shape是 4,可以看到通过在列方向上增加新维度,变成了 4 x 1 的矩阵,也就是在 shape 的后面发生了变化。

x = np.array([1, 2, 3, 4])
print(x.shape)
x_add = x[:, np.newaxis]
print(x_add.shape)
print(x_add)
>>>
(4,)
(4, 1)
[[1]
 [2]
 [3]
 [4]]


2.np.concatenate()


import numpy as np
x1 = np.random.normal(1,1,(5,4))
x2 = np.random.normal(1,1,(3,4))
print(x1)
print(x1.shape)
print(x2)
print(x2.shape)
con = np.concatenate([x1,x2],axis=0)
print(con)
print(con.shape)
输出结果为:
[[ 2.22806658  0.15277615  2.21245262  1.63831116]
 [ 1.30131232 -1.09226289 -0.65959394  1.16066688]
 [ 1.52737722  0.84587186  1.53041503  0.4584277 ]
 [ 1.56096219  1.29506244  3.08048523  2.06008988]
 [ 1.79964236  0.95087117  1.30845477 -0.2644263 ]]
(5, 4)
[[0.89383392 1.49502055 2.90571116 1.71943997]
 [1.44451535 1.87838383 1.4763242  0.82597179]
 [0.72629108 1.42406398 1.35519112 0.58121617]]
(3, 4)
[[ 2.22806658  0.15277615  2.21245262  1.63831116]
 [ 1.30131232 -1.09226289 -0.65959394  1.16066688]
 [ 1.52737722  0.84587186  1.53041503  0.4584277 ]
 [ 1.56096219  1.29506244  3.08048523  2.06008988]
 [ 1.79964236  0.95087117  1.30845477 -0.2644263 ]
 [ 0.89383392  1.49502055  2.90571116  1.71943997]
 [ 1.44451535  1.87838383  1.4763242   0.82597179]
 [ 0.72629108  1.42406398  1.35519112  0.58121617]]
(8, 4)

axis参数为指定按照哪个维度进行拼接,上述的例子中x1为[5,4] x2为[3,4],设置axis=0则代表着按照第一维度进行拼接,拼接后的尺寸为[8,4]除了第一维度的尺寸发生变化,其他维度不变,同时也说明,必须保证其他维度的尺寸是能对的上的,如果x1为[5,4],x2为[5,3],在这里如果还设置axis=1的话,则会报错,因为x1和x2的第二维度尺寸不相等,无法拼接。


按照axis=1的维度进行拼接,实例如下:

import numpy as np
x1 = np.random.normal(1,1,(5,4))
x2 = np.random.normal(1,1,(5,2))
print(x1)
print(x1.shape)
print(x2)
print(x2.shape)
con = np.concatenate([x1,x2],axis=1)
print(con)
print(con.shape)
输出结果如下:
[[ 1.06700795  2.49432822  0.13721596  0.86647501]
 [-0.24454185  0.83414428  2.06012125 -0.63322426]
 [ 2.01993142 -0.27599932  1.9101389   1.92564214]
 [ 0.12627442  0.97560762  2.00993226  2.02754602]
 [ 0.23883256  1.4805339  -0.83029287  1.37207756]]
(5, 4)
[[ 0.67988459  2.46464482]
 [ 1.19166015  2.16522311]
 [ 1.41193468 -0.01165058]
 [ 0.62496307  1.05706225]
 [ 0.85055712 -0.09588572]]
(5, 2)
[[ 1.06700795  2.49432822  0.13721596  0.86647501  0.67988459  2.46464482]
 [-0.24454185  0.83414428  2.06012125 -0.63322426  1.19166015  2.16522311]
 [ 2.01993142 -0.27599932  1.9101389   1.92564214  1.41193468 -0.01165058]
 [ 0.12627442  0.97560762  2.00993226  2.02754602  0.62496307  1.05706225]
 [ 0.23883256  1.4805339  -0.83029287  1.37207756  0.85055712 -0.09588572]]
(5, 6)

其实可以这么理解,axis=0,则表示合并后第一个维度数据要变(axis是从0开始计算的,即第一维表示0),axis=1,则表示合并后第二个维度的数据要变,axis=2,则表示合并后第三个维度数据要变。数据变换一般是两个数组相同维度数值相加。

-1就是按照最后一维度进行合并


3.应用


例如对图片进行means和std统计


image.png

目录
相关文章
|
10天前
|
存储 数据库连接 数据处理
NumPy与数据库的结合应用探索
【4月更文挑战第17天】本文探讨了NumPy与数据库结合在数据处理和分析中的应用,阐述了结合使用的必要性,包括数据提取、转换、处理与分析及结果存储。通过Python数据库连接库提取数据,转化为NumPy数组进行高效计算,适用于金融等领域的数据分析。结合应用的优势在于高效性、灵活性和可扩展性,但也面临数据转换、性能优化和安全性挑战。
|
10天前
|
数据采集 机器学习/深度学习 数据挖掘
网络数据处理中的NumPy应用实战
【4月更文挑战第17天】本文介绍了NumPy在网络数据处理中的应用,包括数据预处理、流量分析和模式识别。通过使用NumPy进行数据清洗、格式化和聚合,以及处理时间序列数据和计算统计指标,可以有效进行流量分析和异常检测。此外,NumPy还支持相关性分析、周期性检测和聚类分析,助力模式识别。作为强大的科学计算库,NumPy在处理日益增长的网络数据中发挥着不可或缺的作用。
|
10天前
|
机器学习/深度学习 搜索推荐 数据挖掘
矩阵运算与分解:NumPy的高级应用
【4月更文挑战第17天】NumPy是Python数值计算基础库,支持高效矩阵运算和分解。本文介绍了NumPy的矩阵加减、乘法以及特征值、奇异值和Cholesky分解,并展示了它们在机器学习(如线性回归、PCA)、图像处理和科学计算中的应用。通过掌握这些高级功能,用户能更有效地处理矩阵数据,解决各种计算和分析任务。
|
10天前
|
数据采集 数据可视化 数据挖掘
NumPy在数据分析中的核心应用
【4月更文挑战第17天】NumPy是Python数据分析基础库,核心应用包括数据结构化、预处理、统计分析和可视化。它提供`ndarray`多维数组对象及灵活索引,用于数据存储和处理。数据预处理支持缺失值处理,统计分析涵盖描述性统计和相关性分析。虽不直接支持数据可视化,但能与Matplotlib等库集成绘制图表。掌握NumPy能提升数据分析效率,助于挖掘数据价值。
|
1月前
|
机器学习/深度学习 存储 人工智能
基于NumPy构建LSTM模块并进行实例应用(附代码)
基于NumPy构建LSTM模块并进行实例应用(附代码)
46 0
|
1月前
|
机器学习/深度学习 人工智能 PyTorch
基于Numpy构建RNN模块并进行实例应用(附代码)
基于Numpy构建RNN模块并进行实例应用(附代码)
33 0
|
4月前
|
SQL 存储 数据采集
解释下NumPy和Pandas库在数据分析中的应用。
解释下NumPy和Pandas库在数据分析中的应用。
|
5月前
|
数据挖掘 数据处理 C语言
Python中的数据科学:Pandas和NumPy库的高效应用
在Python数据科学领域,Pandas和NumPy是两个核心的库,它们为数据处理和分析提供了强大的工具。本文将深入探讨Pandas和NumPy的高效应用,介绍它们的基本用法以及如何结合使用这两个库来进行数据科学任务。
|
9月前
|
存储 索引 Python
深入NumPy:Python科学计算库的高级应用
在本篇文章中,我们将探讨Python中的NumPy库的一些高级特性和技巧,包括广播机制、矢量化操作、高级索引、结构化数组以及NumPy中的随机抽样等内容。这些功能将有助于我们进行更加复杂和高效的科学计算。
|
10月前
|
数据采集 机器学习/深度学习 数据挖掘
使用Python进行数据清洗与预处理:Pandas和NumPy的应用
在数据分析和机器学习的过程中,数据清洗和预处理是非常重要的一步。Python提供了许多强大的库来帮助我们有效地进行数据清洗和预处理。本文将重点介绍两个常用的库:Pandas和NumPy。我们将使用一个实际的数据集来演示如何使用这两个库进行数据清洗和预处理,并展示其在数据分析中的应用。
239 0