np.concatenate和np.append与list.extend和list.append直接的区别和联系

1. 联系

1)np.concatenate和np.append与list.extend在功能上有点相似,都是把元素添加。而list.append如果append的对象是list会将整个list作为一个元素加入。

a = [1]
b = [3, 4]
a.append(b)
print("a.append(b):", a)
c = [5]
d = [6, 7]
c.extend(d)
print("c.extend(d):", d)
f = np.array([8])
g = np.array([9, 10])
print("np.concatenate((f,g)):", np.concatenate((f, g)))
h = np.array([11])
i = np.array([12, 13])
print("np.append(h, i):", np.append(h, i))

2. 区别

1)np.concatenate和np.append都是有返回值的,需要赋值。而list.extend和list.append可以直接用。

#narray 需要赋值
a,b = np.array([1]), np.array([2])
a = np.append(a,b)
a = np.concatenate(a,b)
#list 不需要赋值
c, d = [1],[2]
c.append(d)
c.extend(d)

2) np.concatenate和np.append的区别是,np.concatenate要求连接的两个array维度完全一致,np.append不需要。同时np.concatenate还需要将两个要连接的array通过元组的形式给出,否则会报错:TypeError: only integer scalar arrays can be converted to a scalar index。

a = np.array([1, 3, 4])
b = np.concatenate((a, 100))  # 错误
c = np.concatenate((a, [100]))  # 正确
d = np.concatenate(a, 100)  # 报错
e = np.append(a, 100)  # 正确

3)在大数据处理时,list就显得有点低效了,np.concatenate是处理大数据效率最高的,那么如果想用np.concatenate实现一个三维array添加一个矩阵,这个时候有个细节要注意,那就是要先将这个矩阵reshape成三维的。

a = [[[1,2],[3,4]]]
b = [[5,6],[7,8]]
a.append(b) # 正确

a = np.array([[[1,2],[3,4]]])
b = np.array([[5,6],[7,8]])
c = np.concatenate((a,b)) # 错误
c = np.concatenate((a,b.reshape(1,2,2)))# 正确

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值