numpy中用None扩充维度

numpy中除了可以用newaxis、expand_dim函数扩充维度(参考链接),还可以用None扩充维度。

示例:

我们也可以用这个方法来实现某个维度的内部相减,例如对于2维数组,有第0维(即行)和第1维(即列),我们可以用下面的方法实现用其他列减去第2列的想法:

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
e = np.arange(12).reshape([3, 4])
print('e:\n', e)
 
f = e[:, 2]
print('\nf:\n', f)
 
g = f[:, None]
print('\ng:\n', g)
 
print('\ne-g:\n', e-g)

运行结果:

对于三维数组以及高维数组,也可以用同样的方法实现:

1
2
3
4
5
6
7
8
9
10
11
import numpy as np
a = np.arange(24).reshape([2, 3, 4])
print('a:\n', a)
 
b = a[:, 1, :]
print('\nb:\n', b)
 
c = b[:, None, :]
print('\nc:\n', c)
 
print('\na-c:\n', a-c)

运行结果:

 

posted @   Picassooo  阅读(798)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示