python之numpy.newaxis

1、np.newaxis的功能是插入新维度

a=np.array([1,2,3,4,5])
print(a.shape)  #(5,)表示有五个元素
print(a)  #[1 2 3 4 5]即a是一个一维数组

b=a[np.newaxis,:]
print(b.shape) #(1, 5)
print(b)  #[[1 2 3 4 5]]即b是一个二维数组

c=a[:,np.newaxis] 
print(c.shape)  #(5, 1)
print(c)  #[[1]
          #[2]
          #[3]
          #[4]
          #[5]]

总结:np.newaxis分别是在行或列上增加维度,原来是(5,)的数组,在行上增加维度变成(1,5)的二维数组,在列上增加维度变为(5,1)的二维数组

2、np.newaxis 在使用和功能上等价于 None,其实是 None 的一个别名

print(type(np.newaxis))  #<class 'NoneType'>
print(np.newaxis == None)  #True

3、np.newaxis 和None的使用

x = np.arange(3)
print(x)  #[0 1 2]
print(x.shape) #(3,)表示有三个元素
print(x[:, np.newaxis])  #[[0]
                         #[1]
                         #[2]]
print(x[:, None])  #[[0]
                   #[1]
                   #[2]]
print(x[:, np.newaxis].shape)  #(3, 1)

参考:https://blog.youkuaiyun.com/lanchunhui/article/details/49725065

           https://blog.youkuaiyun.com/molu_chase/article/details/78619731

### numpy.newaxis 的功能与使用方法 `numpy.newaxis` 是 NumPy 中用于增加数组维度的一个工具。它的作用是在指定位置插入一个新的轴,从而改变数组的形状而不改变其数据[^1]。 #### 基本概念 通过 `numpy.newaxis` 可以将一维数组转换为二维或多维数组。它实际上是一个特殊的对象,在索引操作中可以用来扩展数组的维度。值得注意的是,`numpy.newaxis` 和 Python 的内置常量 `None` 实际上是同一个对象,因此可以用 `None` 替代 `numpy.newaxis` 来实现相同的效果[^2]。 ```python import numpy as np print('np.newaxis和None一样吗:{}'.format(np.newaxis is None)) # 输出: np.newaxis和None一样吗:True ``` #### 示例分析 以下是几个具体的例子来展示如何使用 `numpy.newaxis`: ##### 示例 1:在一维数组前新增一个维度 假设有一个一维数组 `[1, 2, 3]`,可以通过在前面加新轴将其变为 `(1, n)` 形状的二维数组。 ```python X = np.array([1, 2, 3]) print(X.shape) # (3,) Y = X[np.newaxis, :] print(Y.shape) # (1, 3) print(Y) # [[1 2 3]] ``` 这里,`X[np.newaxis, :]` 表示在第一个维度上增加了新的轴,使得原数组变成了一行多列的形式[^4]。 ##### 示例 2:在一维数组后新增一个维度 同样的一维数组 `[1, 2, 3]`,如果希望在其后面添加新轴,则可得到 `(n, 1)` 形状的结果。 ```python Z = X[:, np.newaxis] print(Z.shape) # (3, 1) print(Z) # [[1] # [2] # [3]] ``` 此例中,`X[:, np.newaxis]` 将原始数组转置成了多行单列的样子。 #### 结合 repeat 方法的应用场景 当需要重复某些特定模式的数据结构时,通常会结合 `numpy.repeat()` 函数一起使用。例如创建矩阵填充任务中的辅助变量定义等情形下非常有用[^3]。 ```python A = np.arange(4).reshape((2, 2)) B = A[:, :, np.newaxis].repeat(3, axis=2) print(B.shape) # (2, 2, 3) print(B) """ [[[0 0 0] [1 1 1]] [[2 2 2] [3 3 3]]] """ ``` 上述代码片段展示了如何利用 `numpy.newaxis` 配合 `repeat` 方法沿某一方向复制现有数值序列形成更高阶张量的过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值