简体   繁体   English

Python中使用numpy的动态数组

[英]Dynamic Arrays in Python using numpy

travel_mat1= numpy.array([[23,23,20,24,28,12,17,10],[11,27,17,19,24,18,23,7],
[17,26,22,13,18,29,30,18],[22,21,28,7,18,29,30,18],[27,16,33,36,10,23,26,25],
[31,13,36,14,26,23,20,27],[34,7,33,20,35,17,14,24],[28,13,27,26,37,11,10,18],
[25,17,33,28,34,10,12,15]])

I need to change the size of array dynamically with no loss of actual data in the array. 我需要动态更改数组的大小,而不会丢失数组中的实际数据。 Means, I need to have a virtual dynamic array. 就是说,我需要一个虚拟的动态数组。

The above array Travel_mat1 is a 9X8 matrix. 上面的数组Travel_mat1是9X8矩阵。 So if i need a 8X7 size matrix from Travel_mat1, it should look like: 因此,如果我需要Travel_mat1的8X7尺寸矩阵,它应该看起来像:

([[23,23,20,24,28,12,17],[11,27,17,19,24,18,23],[17,26,22,13,18,29,30],
  [22,21,28,7,18,29], [27,16,33,36,10,23,26],[31,13,36,14,26,23,20],
  [34,7,33,20,35,17,14],[28,13,27,26,37,11,10]]).

Means, I need to reduce a row and a column in this case. 就是说,在这种情况下,我需要减少一行和一列。 How can I do this in python? 如何在python中做到这一点?

You can use numpy.delete : 您可以使用numpy.delete

>>> numpy.delete(numpy.delete(travel_mat1, 8, 0), 7, 1)
array([[23, 23, 20, 24, 28, 12, 17],
       [11, 27, 17, 19, 24, 18, 23],
       [17, 26, 22, 13, 18, 29, 30],
       [22, 21, 28,  7, 18, 29, 30],
       [27, 16, 33, 36, 10, 23, 26],
       [31, 13, 36, 14, 26, 23, 20],
       [34,  7, 33, 20, 35, 17, 14],
       [28, 13, 27, 26, 37, 11, 10]])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM