向ndarray添加维度并重塑

时间:2019-08-23 05:46:26

标签: python-3.x numpy

我有一个形状为(16,2)的numpy数组

[[-109.12722222    1454.        ]
 [-109.12694444    1459.        ]
 [-109.12666667    1463.        ]
 [-109.12638889    1465.        ]
 [-109.12611111    1464.        ]
 [-109.12583333    1464.        ]
 [-109.12555556    1464.        ]
 [-109.12527778    1464.        ]
 [-109.125         1464.        ]
 [-109.12472222    1465.        ]
 [-109.12444444    1465.        ]
 [-109.12416667    1463.        ]
 [-109.12388889    1462.        ]
 [-109.12361111    1461.        ]
 [-109.12333333    1459.        ]
 [-109.12305556    1454.        ]]

,我想知道如何重塑形状,使其变为(4,4,2)。

[[-109.12722222    1454.        ] [-109.12694444    1459.        ][-109.12666667    1463.        ][-109.12638889    1465.        ]
 [-109.12611111    1464.        ] [-109.12583333    1464.        ] [-109.12555556    1464.        ][-109.12527778    1464.        ]
 [-109.125         1464.        ][-109.12472222    1465.        ][-109.12444444    1465.        ][-109.12416667    1463.        ]
 [-109.12388889    1462.        ][-109.12361111    1461.        ][-109.12333333    1459.        ][-109.12305556    1454.        ]]

我尝试过:

numpy_array = np.reshape(4, 4, 2)

但是它抛出:

ValueError:无法将大小为1的数组重塑为形状(4,)

1 个答案:

答案 0 :(得分:3)

您可以使用numpy.newaxis

fn main() {
    let mut point = Point { x: 1.0, y: 2.0 };

    let x_mut = point.x_mut();
    *x_mut *= 2.0;

    let y_mut = point.y_mut();
    *y_mut *= 2.0;
}