c语言sscanf函数的用法是什么
269
2022-08-25
【Python】数据分析.numpy.数组的基本运算函数、复制和指代
文章目录
数据分析-numpy.数组的基本函数、复制和指代
一、数组的基本运算函数
◐ 常见运算函数◐ 案例
二、复制和指代
2.1 完全不复制2.2 view() 返回指代 --- 浅复制3.深度复制
数据分析-numpy.数组的基本函数、复制和指代
一、数组的基本运算函数
◐ 常见运算函数
以下是学习过程中看到的numpy数组中常见的运算方法,分享一下~ 有些就没做具体的案例展示
返回顶部
◐ 案例
import numpy as npt = np.arange(6)print(t)# [0 1 2 3 4 5]#返回输入数组以e、2为底的指数结果print(np.exp(t))# [ 1. 2.71828183 7.3890561 20.08553692 54.59815003 148.4131591 ]print(np.exp2(t))# [ 1. 2. 4. 8. 16. 32.]#返回数组元素的正弦、余弦、正切值print(np.sin(t))# [ 0. 0.84147098 0.90929743 0.14112001 -0.7568025 -0.95892427]print(np.cos(t))# [ 1. 0.54030231 -0.41614684 -0.9899925 -0.65364362 0.28366219]print(np.tan(t))# [ 0. 1.55740772 -2.18503986 -0.14254654 1.15782128 -3.38051501]#两个数组相加、减、乘、除t1 = np.arange(7,13)print(t1)# [ 7 8 9 10 11 12]print(np.add(t,t1))# [ 7 9 11 13 15 17]print(np.subtract(t,t1))# [-7 -7 -7 -7 -7 -7]print(np.multiply(t,t1))# [ 0 8 18 30 44 60]print(np.divide(t,t1))# [0. 0.125 0.22222222 0.3 0.36363636 0.41666667]
返回顶部
二、复制和指代
2.1 完全不复制
赋值操作属于完全不复制数组的一类操作:简单的赋值不拷贝数组对象或它们的数据
import numpy as npa = np.arange(10)print(a)# [0 1 2 3 4 5 6 7 8 9 ]b = a #进行赋值操作print(b)# [0 1 2 3 4 5 6 7 8 9]a[2] = 100print(a)print(b)# [ 0 1 100 3 4 5 6 7 8 9]# [ 0 1 100 3 4 5 6 7 8 9]b[2] = 10print(a)print(b)# [ 0 1 10 3 4 5 6 7 8 9]# [ 0 1 10 3 4 5 6 7 8 9]
返回顶部
2.2 view() 返回指代 — 浅复制
不同的变量可以指向同一个数组。使用view()方法可以生成一个数组对象,指代同一个数组。
m = np.arange(12).reshape(4,3)print(m)# [[ 0 1 2]# [ 3 4 5]# [ 6 7 8]# [ 9 10 11]]n = m.view()print(n is m)# Falsen[0,2] =1314print(m)# [[ 0 1 1314]# [ 3 4 5]# [ 6 7 8]# [ 9 10 11]]m[0, 2] = 520print(n)print(m)# [[ 0 1 520]# [ 3 4 5]# [ 6 7 8]# [ 9 10 11]]# [[ 0 1 520]# [ 3 4 5]# [ 6 7 8]# [ 9 10 11]]
返回顶部
3.深度复制
copy()方法会创建一个新的数组对象,而不是建立一个对原数组的索引。简单地说,就是原数组和新数组没有任何关系,任何对新数组的改变都不会影响到原数组。
# 深度复制z = np.arange(12).reshape((3,4))y = z.copy()print(y.base is z)# Falsey[0,0] = 100print(z)# [[ 0 1 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]print(y)# [[100 1 2 3]# [ 4 5 6 7]# [ 8 9 10 11]]
通过对比我们可以发现指代与复制的区别,就是对原数组有没有产生影响。
更多详情参见大佬博文:Python学习4 ----Numpy3种复制操作对比
返回顶部
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~