gpt4 book ai didi

python - 无法在空数组中添加元素。插入、追加和连接之间的区别

转载 作者:行者123 更新时间:2023-12-01 01:29:34 27 4
gpt4 key购买 nike

问:给定一个大小为 3 x 3 的矩阵 mat,找出每一行中最终累加和大于或等于 150 的所有偶数。

[[ 51  21  14]
[ 56 85 22]
[ 99 666 230]]

答案:[56 22 666 230]

import numpy as np 

mat = np.array([[51,21,14],
[56,85,22],
[99,666,230]]).reshape(3,3)



mat = np.array([[51,21,14],[56,85,22],[99,666,230]]).reshape(3,3)
dim = np.arange(0,mat.ndim+1)
a = np.array([])

for ele in mat:
if np.sum(ele)>=150:
for c in ele:
if c%2==0:
np.insert(a,0,[c])
print(a)

问题:我得到空数组。现在我也尝试了附加、连接。我相信插入元素时代码中存在根本性错误。有人可以帮忙分享一个链接/概念,解释专门针对 numpy 数组的插入、连接和追加之间的区别吗?

TIA。

最佳答案

迭代并不是解决这个问题的最佳方法。所有这些操作都可以使用 numpy 轻松矢量化:

m = mat.sum(1) >= 150
t = mat[m]
t[t % 2 == 0]

array([ 56,  22, 666, 230])
<小时/>

说明

创建总和超过 150 的行掩码

>>> m = mat.sum(1) >= 150
>>> m
array([False, True, True])

使用 bool 掩码索引数组

>>> t = mat[m]
>>> t
array([[ 56, 85, 22],
[ 99, 666, 230]])

最后找到偶数元素

>>> t[t % 2 == 0]
array([ 56, 22, 666, 230])

关于python - 无法在空数组中添加元素。插入、追加和连接之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53013447/

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