numpy实现数组的组合,切割,运算与拷贝

目录

一、数组的组合

1.np.concatenate():

2.np.vstack() 和 np.hstack():

二、数组元素的切割

1.np.split():

2.np.array_split():

三、数组的算术运算

四、数组的深拷贝和浅拷贝

1.浅拷贝:

2.深拷贝:


一、数组的组合

NumPy 提供了几种方式来组合数组

1.np.concatenate()

  按照指定轴将数组沿着现有数组组合。

import numpy as np

arr1 = np.array([[1, 2, 3],
                 [4, 5, 6]])
arr2 = np.array([[7, 8, 9],
                 [10, 11, 12]])
result1 = np.concatenate((arr1, arr2), axis=0)  # 沿着行组合
print(result1)
result2 = np.concatenate((arr1, arr2), axis=1)  # 沿着列组合
print(result2)

结果:

2.np.vstack() 和 np.hstack()

  垂直和水平堆叠数组。

result_vstack = np.vstack((arr1, arr2))  # 垂直堆叠
result_hstack = np.hstack((arr1, arr2))  # 水平堆叠
print(result_vstack)
print(result_hstack)

结果:

二、数组元素的切割

1.np.split():

import numpy as np

arr1 = np.arange(16).reshape(4,4)
print(arr1)

#水平切割
a = np.hsplit(arr1,2)
b = np.split(arr1,2,axis=1)

#垂直切割
c = np.vsplit(arr1,2)
d = np.split(arr1,2,axis=0)

结果:

2.np.array_split()

  强制切割。

#水平切割
e = np.array_split(arr1,3,axis=1)
#垂直切割
f = np.array_split(arr1,3,axis=0)
print(e)
print(f)

结果:

三、数组的算术运算

  NumPy 中的数组可以进行基本的算术运算,例如加法、减法、乘法和除法等。这些运算会应用于数组的每个元素。

import numpy as np

arr1 = np.array([[1, 2],
                 [3, 4]])
arr2 = np.array([[5, 6],
                 [7, 8]])
#数组的加法:对应位置的元素求和
print(arr1 + arr2)
#数组的减法:对应位置元素相减
print(arr1 - arr2)
#数组的乘法:对应位置相乘
print(arr1 * arr2)
#数组的除法:对应位置相除
print(arr1 / arr2)
#数组的取余
print(arr2 % arr1)
#数组的取整
print(arr1 // arr2)

结果:

四、数组的深拷贝和浅拷贝

  在 NumPy 中,使用 copy() 方法可以创建数组的深拷贝。

1.浅拷贝

  新数组与原数组共享内存空间,修改一个会影响另一个。

import numpy as np

arr1 = np.array([1,2,3,4])

#浅拷贝
arr2 = arr1

#更改arr2的元素的值
arr2[0] = 100
print(arr2)
print("***********")
print(arr1)

结果:

2.深拷贝

  新数组与原数组完全独立,修改一个不会影响另一个。

#深拷贝
arr3 = arr1.copy()
arr3[0] = 10
print(arr3)
print("***********")
print(arr1)

结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值