np.newaxis实用

本文详细解析了NumPy中np.newaxis的作用及其在数组操作中的应用,包括如何使用None替代np.newaxis进行数组维度扩展,以及在多维数组索引和数据拼接中的实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

>> type(np.newaxis)
NoneType
>> np.newaxis == None
True
因此可以用None替代

1. np.newaxis 的实用

>> x = np.arange(3)
>> x
array([0, 1, 2])
>> x.shape
(3,)

>> x[:, np.newaxis]
array([[0],
       [1],
       [2]])

>> x[:, None]
array([[0],
       [1],
       [2]])

>> x[:, np.newaxis].shape
 (3, 1)

2. 索引多维数组的某一列时返回的是一个行向量

>>> X = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
>>> X[:, 1]
array([2, 6, 10])       % 这里是一个行
>>> X[:, 1].shape       % X[:, 1] 的用法完全等同于一个行,而不是一个列,
(3, )

如果我索引多维数组的某一列时,返回的仍然是列的结构,一种正确的索引方式是:

>>>X[:, 1][:, np.newaxis]
array([[2],
      [6],
      [10]])

如果想实现第二列和第四列的拼接(层叠):

>>>X_sub = np.hstack([X[:, 1][:, np.newaxis], X[:, 3][:, np.newaxis]])           
                   % hstack:horizontal stack,水平方向上的层叠
>>>X_sub
array([[2, 4]
      [6, 8]
      [10, 12]])

当然更为简单的方式还是使用切片:

>> X[:, [1, 3]]
array([[ 2,  4],
       [ 6,  8],
       [10, 12]])

原文链接:https://www.cnblogs.com/onemorepoint/p/8110523.html

 

 

引用中提到了np.ndarray,它是numpy库中的一个数据类型,用于表示多维数组。np.ndarray可以存储相同维度的多个ndarray,并提供了丰富的数组操作功能。当使用append方法将多个ndarray添加到列表中时,如果这些ndarray在除第一维之外的维度上不同,最后转化为np.ndarray的dtype将会是numpy.object_。这可能会导致后续使用np.ndarray的操作出现错误。 引用中提到了np.newaxis,它是numpy库中的一个用于增加数组维度的特殊索引。通过使用np.newaxis,我们可以在数组的某个位置插入一个新的维度,从而改变数组的维度和形状。这对于一些需要改变数组维度的操作非常有用。 引用中提到了np.polyfit和np.polyld,它们是numpy库中用于多项式拟合的函数。通过使用这些函数,我们可以根据给定数据点来拟合一个多项式曲线,并获得多项式的系数。这在数据拟合和曲线拟合等领域非常常见和有用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [can‘t convert np.ndarray of type numpy.object_](https://blog.csdn.net/Bernie_double/article/details/116518947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [numpy np.newaxis实用分享](https://download.csdn.net/download/weixin_38661650/12857574)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python多项式拟合之np.polyfit 和 np.polyld详解](https://download.csdn.net/download/weixin_38545485/12855421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值