美文网首页
[numpy]对于numpy数组的探索

[numpy]对于numpy数组的探索

作者: Franckisses | 来源:发表于2019-03-14 17:51 被阅读0次

一.先来简单的说一下数组的运算。

(1)数组的运算,就会对数组中的每一个元素进行计算,然后返回运算过后的数组的值组成的一个新的数组。

x = np.arange(4)
print("x     =", x)
print("x + 5 =", x + 5)
print("x - 5 =", x - 5)
print("x * 2 =", x * 2)
print("x / 2 =", x / 2)
print("x // 2 =", x // 2)  # 地板除
print('输出原来的数组检查:',x)  

结果是:

x     = [0 1 2 3]
x + 5 = [5 6 7 8]
x - 5 = [-5 -4 -3 -2]  
x * 2 = [0 2 4 6]
x / 2 = [0.  0.5 1.  1.5]
x // 2 = [0 0 1 1]
[0 1 2 3]

(2)还有对于数组进行取反,求幂,还有对于数组进行求余的操作(有的地方叫取模!)。

print("-x     = ", -x)  #取反
print("x ** 2 = ", x ** 2)   #进行求幂运算
print("x % 2  = ", x % 2) #进行求余数

结果:

-x     =  [ 0 -1 -2 -3]
x ** 2 =  [0 1 4 9]
x % 2  =  [0 1 0 1]

(3)另外,还支持一些其他的混合运算符操作。

a = -(0.5*x + 1) ** 2
print(a)

结果:

array([-1.  , -2.25, -4.  , -6.25])

二.我们除去用数学符号外,numpy也给我们封装了一些函数的方法来实现这些功能。

运算符 numpy中的方法 描述
+ np.add() Addition (e.g., 1 + 1 = 2)
- np.subtract() Subtraction (e.g., 3 - 2 = 1)
- np.negative() Unary negation (e.g., -2)
* np.multiply() Multiplication (e.g., 2 * 3 = 6)
/ np.divide() Division (e.g., 3 / 2 = 1.5)
// np.floor_divide Floor division (e.g., 3 // 2 = 1)
** np.power Exponentiation (e.g., 2 ** 3 = 8)
% np.mod Modulus/remainder (e.g., 9 % 4 = 1)

创建一个数组:

b = [-4, -2, 0, 2, 4]
a = np.array(b)
>>>a
array([-4, -2, 0, 2, 4])

示例:

print(np.add(a,2))
print(np.subtract(a,4))
print(np.negative(a))
print(np.multiply(a,3))
print(np.divide(a,3))
print(np.floor_divide(a,2))
print(np.power(a,4))
print(np.mod(a,3))
>>> 结果:
[-2  0  2  4  6]
[-8 -6 -4 -2  0]
[ 4  2  0 -2 -4]
[-12  -6   0   6  12]
[-1.33333333 -0.66666667  0.          0.66666667  1.33333333]
[-2 -1  0  1  2]
[256  16   0  16 256]
[2 1 0 2 1]

三.三角函数。

生成0-pi之间的均分4个数。

c = np.linspace(0,np.pi,4)

分别进行求三角函数的值:

print("theta      = ", c)
print("sin(theta) = ", np.sin(c))
print("cos(theta) = ", np.cos(c))
print("tan(theta) = ", np.tan(c))
>>> 结果:
c = [0.         1.04719755 2.0943951  3.14159265]
sin(c) =  [0.00000000e+00 8.66025404e-01 8.66025404e-01 1.22464680e-16]
cos(c) =  [ 1.   0.5 -0.5 -1. ]
tan(c) =  [ 0.00000000e+00  1.73205081e+00 -1.73205081e+00 -1.22464680e-16]

然后再看看反三角函数:

x = [-1, 0, 1]
print("x         = ", x)
print("arcsin(x) = ", np.arcsin(x))
print("arccos(x) = ", np.arccos(x))
print("arctan(x) = ", np.arctan(x))
>>>结果:
x         =  [-1, 0, 1]
arcsin(x) =  [-1.57079633  0.          1.57079633]
arccos(x) =  [ 3.14159265  1.57079633  0.        ]
arctan(x) =  [-0.78539816  0.          0.78539816]

四.指数和对数。

指数:

x = [1, 2, 3]
print("x     =", x)
print("e^x   =", np.exp(x))
print("2^x   =", np.exp2(x))
print("3^x   =", np.power(3, x)) 
>>> 结果:
x  =  [1, 2, 3]
e^x  =  [  2.71828183   7.3890561   20.08553692]
2^x  =  [ 2.  4.  8.]
3^x  =  [ 3  9 27]

对数:

x = [1, 2, 4, 10]
print("x        =", x)
print("ln(x)    =", np.log(x))
print("log2(x)  =", np.log2(x))
print("log10(x) =", np.log10(x))
>>>结果:
x        = [1, 2, 4, 10]
ln(x)    = [ 0.          0.69314718  1.38629436  2.30258509]
log2(x)  = [ 0.          1.          2.          3.32192809]
log10(x) = [ 0.          0.30103     0.60205999  1.        ]

that's all!

相关文章

网友评论

      本文标题:[numpy]对于numpy数组的探索

      本文链接:https://www.haomeiwen.com/subject/vmfcmqtx.html