博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(100天2小时第十五天)numpy数组的基本运算
阅读量:776 次
发布时间:2019-03-24

本文共 1363 字,大约阅读时间需要 4 分钟。

一.基本操作

1.数组的算术运算会自动作用于每个元素,并返回一个新的数组。

  +号

a = np.array([20,30,40,50])b = np.arange(4)#默认0,1,2,3c = a - bprint(c)print(b*2)print(np.sin(a))print(10 * np.sin(a))print(a < 35)

 

*号,*返回的是每个元素相乘的结果,要实现矩阵乘法,需要使用dot函数

a = np.array([[1, 1],            [0, 1]])b = np.array([[2, 0],            [3, 4]])print(a*b)#对应位置元素相乘print(a.dot(b))print(np.dot(a, b))# 另一种形式的矩阵乘法

 

+=*=是直接修改原有的数组,而不是新建一个

a = np.ones((2,3), dtype=int)print(a)b = np.random.random((2, 3))print(b)print(a.dtype)print(b.dtype)b+=aprint(b)

  

注意:a是int型,b是float型。b+=a,直接改变b数组,a+=b,报错,a没法保存float64类型

2.当不同类型的数组运算操作时,总是向精度更高的自动转换。

a = np.ones(3, dtype=np.int32)print(a)b = np.linspace(0, np.pi, 3)#np.pi 是一个常数表示圆周率πprint(b)c = a + bprint(c)print(c.dtype.name)d = np.exp(c*1j)print(d)print(d.dtype.name)
np.exp():返回e的幂次方,e是一个常数为2.71828np.exp(1) 为自身, np.exp(2) 为平方d=np.exp(c*1j) ''' 注意1j是虚数,进行复数运算

3.ndarray包含了很多一元运算。如求和,求最大,最小值等。

a = np.arange(15).reshape(3, 5)print(a)print(a.sum())print(a.min())print(a.max())

 

4.默认情况下,这些操作都是作用于每一个元素,而不管它的维度。但是,我们也可以通过axis参数来限定操作的轴。

b = np.arange(12).reshape(3, 4)print(b)print('\n')print(b.sum(axis=0))# 计算每一列的和print('\n')print(b.min(axis=1))# 计算每一行的最小值print('\n')print(b.cumsum(axis=1))# 每一行累积和

  

总结:

1.要实现矩阵乘法,需要使用dot函数

2.数组的算术运算会自动作用于每个元素,并返回一个新的数组。而 +=*=是直接修改原有的数组,而不是新建一个。

3.a是int型,b是float型。b+=a,直接改变b数组,a+=b,报错,a没法保存float64类型

4.np.pi 是一个常数表示圆周率π

  d=np.exp(c*1j) 注意1j是虚数,进行复数运算

转载地址:http://bsuuk.baihongyu.com/

你可能感兴趣的文章