为了账号安全,请及时绑定邮箱和手机立即绑定

每次迭代后将新元素推入数组

每次迭代后将新元素推入数组

PIPIONE 2024-01-04 10:22:09
我必须要分离的数组。A = np.array([1, 10, 23, 42, 15, 352, 3, 3, 9, 10, 51, 92, 30, 32, 41, 42, 45, 2, 3, 4])和数组 B。然后,我想将 A 中的前 5 个元素分离到 B 中B = A[:5]现在我要做的是从第 5 个元素开始循环 A,并在每次迭代后将A 中的1 个元素添加到 B 中for i in range(A[5:]):    B = A    print(B)然而这给了我:类型错误:只有整数标量数组可以转换为标量索引当我打印 B 时出现异常输出[1, 10, 23, 42, 15][1, 10, 23, 42, 15, 352][1, 10, 23, 42, 15, 352, 3][1, 10, 23, 42, 15, 352, 3, 3][1, 10, 23, 42, 15, 352, 3, 3, 9] ...[1, 10, 23, 42, 15, 352, 3, 3, 9, 10, 51, 92, 30, 32, 41, 42, 45, 2, 3, 4]      2 B = A[:5]      3 ----> 4 for i in range(A[5:]):      5     B = A      6 TypeError: only integer scalar arrays can be converted to a scalar index
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

首先,range不接受数组作为参数。您可能想直接迭代数组的剩余部分A。然后,想法确实是使用该np.append函数,但将其存储在B每次迭代中,以便将元素从Ainto中推入B:


Python脚本


import numpy as np


A = np.array([1, 10, 23, 42, 15, 352, 3, 3, 9, 10, 51, 92, 30, 32, 41, 42, 45, 2, 3, 4])

B = A[:5]

for i in A[5:]:

    B = np.append(B, i)

    print(B)

输出


[  1  10  23  42  15 352]

[  1  10  23  42  15 352   3]

[  1  10  23  42  15 352   3   3]

[  1  10  23  42  15 352   3   3   9]

[  1  10  23  42  15 352   3   3   9  10]

[  1  10  23  42  15 352   3   3   9  10  51]

[  1  10  23  42  15 352   3   3   9  10  51  92]

[  1  10  23  42  15 352   3   3   9  10  51  92  30]

[  1  10  23  42  15 352   3   3   9  10  51  92  30  32]

[  1  10  23  42  15 352   3   3   9  10  51  92  30  32  41]

[  1  10  23  42  15 352   3   3   9  10  51  92  30  32  41  42]

[  1  10  23  42  15 352   3   3   9  10  51  92  30  32  41  42  45]

[  1  10  23  42  15 352   3   3   9  10  51  92  30  32  41  42  45   2]

[  1  10  23  42  15 352   3   3   9  10  51  92  30  32  41  42  45   2   3]

[  1  10  23  42  15 352   3   3   9  10  51  92  30  32  41  42  45   2   3   4]


查看完整回答
反对 回复 2024-01-04
?
慕后森

TA贡献1802条经验 获得超5个赞

Iterator只接受像[list]这样的可迭代对象,所以如果你想使用A[5:]作为列表,可以这样写:


for i in A[5:]:

    B = A

    print(B)

这个输出是你想要的吗?如果没有,请尝试以下操作:


for i in A[5:]:

    print(i)

或者


for i in A[5::5]:

    print(i)


查看完整回答
反对 回复 2024-01-04
?
繁星coding

TA贡献1797条经验 获得超4个赞

B = A[:5]


for i in A[6:]:

     #B.append(i)

     np.append(B,i)


查看完整回答
反对 回复 2024-01-04
  • 3 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信