You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

numpy中reshape(-1)将二维数组转1维的内部排列规则是什么

numpy中reshape(-1)的转换逻辑与元素排列规则

1. reshape参数中-1的含义

numpy.reshape() 用于在不改变数组总元素数量的前提下,调整数组的维度形状。当你给某个维度的位置传入-1时,代表该维度的长度由numpy自动计算,计算规则为:总元素数 ÷ 其他所有维度的指定长度的乘积。
你给出的示例中只传入了一个-1,也就是明确要求输出1维数组,numpy会直接将总元素数作为该维度的长度:原数组是2行3列,总共有6个元素,所以自动生成一个长度为6的一维数组。

2. 内部元素的排列规则

默认采用*行优先(C风格顺序)*的规则排列:

  • 对于二维数组,会优先取完第一行从左到右的所有元素,再依次取第二行、第三行的所有元素,最终拼接为一维数组。
  • 你示例中的原数组为[[1, 2, 3], [4, 5, 6]],按行优先规则拼接后,自然得到[1 2 3 4 5 6]的输出结果。
    如果需要调整为列优先(Fortran风格顺序)排列,可额外指定order参数:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 按列优先转换为一维数组,输出为[1 4 2 5 3 6]
newa_f = arr.reshape(-1, order='F')

内容的提问来源于stack exchange,提问作者user17344362

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:15:07