gpt4 book ai didi

python - 如何在没有 for 循环 Python 的情况下获得相同的数组输出

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:55 25 4
gpt4 key购买 nike

现在我有这个 numpy 数组:

[[   0    9   18   27   36   45   54   63   72   81   90   99]
[ 108 117 126 135 144 153 162 171 180 189 198 207]
[ 216 225 234 243 252 261 270 279 288 297 306 315]
[ 324 333 342 351 360 369 378 387 396 405 414 423]
[ 432 441 450 459 468 477 486 495 504 513 522 531]
[ 540 549 558 567 576 585 594 603 612 621 630 639]
[ 648 657 666 675 684 693 702 711 720 729 738 747]
[ 756 765 774 783 792 801 810 819 828 837 846 855]
[ 864 873 882 891 900 909 918 927 936 945 954 963]
[ 972 981 990 999 1008 1017 1026 1035 1044 1053 1062 1071]
[1080 1089 1098 1107 1116 1125 1134 1143 1152 1161 1170 1179]
[1188 1197 1206 1215 1224 1233 1242 1251 1260 1269 1278 1287]]

我想做的是从每一列开始,第一个元素需要+0,第二个元素需要+1,第三个+2,第四个+3等等。所以前两行需要看起来像这样:

[[   0    10   20   30   40   50   60   70   80   90   100   110]
[ 108 118 128 138 148 158 168 178 188 198 208 218]

我已经有以下代码:

nw = [x for x in np.hsplit(array, array.shape[1])]
column = 0
upd = []
for x in nw:
x += column
column += 1
upd.append(x)

nw2 = np.reshape(upd,(12,12))
nw3 = np.hsplit(nw2,12)
nw4 = np.reshape(nw3,(12,12))
nw4

它给出了我想要的输出。但事情是这样的,我想在(我更喜欢)1 行代码中更有效地完成它并且没有 for 循环。但我对如何做到这一点感到困惑。所以我希望这里有人能帮助我!

最佳答案

只需使用a+b,其中b=arange(N)N是列数。

import numpy as np
a = np.array([[ 0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99],
[ 108, 117, 126, 135, 144, 153, 162, 171, 180, 189, 198, 207],
[ 216, 225, 234, 243, 252, 261, 270, 279, 288, 297, 306, 315],
[ 324, 333, 342, 351, 360, 369, 378, 387, 396, 405, 414, 423],
[ 432, 441, 450, 459, 468, 477, 486, 495, 504, 513, 522, 531],
[ 540, 549, 558, 567, 576, 585, 594, 603, 612, 621, 630, 639],
[ 648, 657, 666, 675, 684, 693, 702, 711, 720, 729, 738, 747],
[ 756, 765, 774, 783, 792, 801, 810, 819, 828, 837, 846, 855],
[ 864, 873, 882, 891, 900, 909, 918, 927, 936, 945, 954, 963],
[ 972, 981, 990, 999, 1008, 1017, 1026, 1035, 1044, 1053, 1062, 1071],
[1080, 1089, 1098, 1107, 1116, 1125, 1134, 1143, 1152, 1161, 1170, 1179],
[1188, 1197, 1206, 1215, 1224, 1233, 1242, 1251, 1260, 1269, 1278, 1287]])

b = np.arange(a.shape[1])

result = a + b

关于python - 如何在没有 for 循环 Python 的情况下获得相同的数组输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com