Numpy通用函数介绍
Numpy通用函数介绍
wolfoxliu 发表于10个月前
Numpy通用函数介绍
  • 发表于 10个月前
  • 阅读 66
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

一、通用函数:对numpy.array中的数据执行元素级运算的函数

1.求绝对值的函数

# Python里面的abs函数是内置函数,可以求整数,浮点数,复数的绝对值
print abs(2)                  # 结果仍是整数
print abs(-2.6)
print abs(3. + 4j)

2
2.6
5.0

# Python中的fabs函数是math库中的函数,可以求整数,浮点数的绝对值
print math.fabs(-6)          # 结果为浮点数
print math.fabs(-6.8)

6.0
6.8

# 因为abs是内置函数,还可以求矩阵元素的绝对值,而math.fabs没有该功能
arr = np.array([[1, -2, 3], [-4, 5, 0]])
print 'arr:'
print arr
print '------------'
print 'abs(arr):'
print abs(arr)

arr:
[[ 1 -2  3]
 [-4  5  0]]
------------
abs(arr):
[[1 2 3]
 [4 5 0]]

# 求矩阵元素的绝对值还可以使用np.abs、np.absolute和np.fabs函数,np.fabs的速度更快
arr = np.array([[1, -2, 3.8], [-4, 5, 9]])
print 'arr:'
print arr
print '--------------------'
print 'np.abs(arr):'
print np.abs(arr)
print '--------------------'
print 'np.absolute(arr):'
print np.absolute(arr)
print '--------------------'
print 'np.fabs(arr):'
print np.fabs(arr)

arr:
[[ 1.  -2.   3.8]
 [-4.   5.   9. ]]
--------------------
np.abs(arr):
[[ 1.   2.   3.8]
 [ 4.   5.   9. ]]
--------------------
np.absolute(arr):
[[ 1.   2.   3.8]
 [ 4.   5.   9. ]]
--------------------
np.fabs(arr):
[[ 1.   2.   3.8]
 [ 4.   5.   9. ]]

 

2.求平方根的函数

# np.sqrt(arr)求平方根,等价于arr ** 0.5
arr = np.array([[1, 4, 6.25], [16, 25, 36]])
print np.sqrt(arr)

[[ 1.   2.   2.5]
 [ 4.   5.   6. ]]

 

3.求平方的函数

# np.square(arr)求平方,等价于arr ** 2
arr = np.array([[1, 2, 1.5], [0.1, 7, 3]])
print np.square(arr)

[[  1.00000000e+00   4.00000000e+00   2.25000000e+00]
 [  1.00000000e-02   4.90000000e+01   9.00000000e+00]]

 

4.获取两个矩阵对应位置上较大的元素

x = np.array([[-1, 3, 5], [0.1, 7, 3]])
y = np.array([[0, 2, -9], [9, -0.2, 100]])
print 'x:'
print x
print '--------------------------'
print 'y:'
print y
print '--------------------------'
print 'maximum:'
print np.maximum(x, y)

x:
[[-1.   3.   5. ]
 [ 0.1  7.   3. ]]
--------------------------
y:
[[   0.     2.    -9. ]
 [   9.    -0.2  100. ]]
--------------------------
maximum:
[[   0.    3.    5.]
 [   9.    7.  100.]]

 

5.将矩阵元素的整数部分和小数部分分开

arr = np.random.randn(4)            # 标准正态分布
print 'arr:'
print arr
print '-----------------------------------------------------------------------'
print 'modf:'
print np.modf(arr)

arr:
[-0.75150837 -2.16133361 -1.09105508  0.19173811]
-----------------------------------------------------------------------
modf:
(array([-0.75150837, -0.16133361, -0.09105508,  0.19173811]), array([-0., -2., -1.,  0.]))

 

6.meshgrid函数:一个m × n的矩阵与一个p × q的矩阵经过meshgrid之后得到两个pq × mn的矩阵

arr1 = np.arange(1, 3)
arr2 = np.array([[3, 4, 5], [1, 0, 9]])
print 'arr1:'
print arr1
print '----------------------------------------'
print 'arr2:'
print arr2
print '----------------------------------------'
x, y = np.meshgrid(arr1, arr2)
print 'x:'
print x
print '----------------------------------------'
print 'y:'
print y

arr1:
[1 2]
----------------------------------------
arr2:
[[3 4 5]
 [1 0 9]]
----------------------------------------
x:
[[1 2]
 [1 2]
 [1 2]
 [1 2]
 [1 2]
 [1 2]]
----------------------------------------
y:
[[3 3]
 [4 4]
 [5 5]
 [1 1]
 [0 0]
 [9 9]]

 

7.where函数的用法

x_arr = np.array([1, 2, 4, 5])
y_arr = np.array([-1, -2, -4, -5])
z_arr = np.array([True, False, False, True])
result1 = [x if z else y for x, y, z in zip(x_arr, y_arr, z_arr)]
print 'result1:'
print result1
print '----------------------------'
result2 = np.where(z_arr, x_arr, y_arr)
print 'result2:'
print result2

result1:
[1, -2, -4, 5]
----------------------------
result2:
[ 1 -2 -4  5]

 

8.sum函数和mean函数

arr = np.array([[2, 4, 6], [1, 3, 5]])
print 'arr:'
print arr
print '---------------------------------------'
print 'np.mean(arr):'
print np.mean(arr)                 # 等于arr.mean()
print '---------------------------------------'
print 'np.sum(arr):'
print np.sum(arr)                  # 等于arr.sum()
print '---------------------------------------'
print '按列来计算'
print np.mean(arr, axis=0)         # axis=0, 表示按列来计算
print '---------------------------------------'
print '按行来计算'
print np.sum(arr, axis=1)          # axis=1, 表示按行来计算
print '---------------------------------------'

arr:
[[2 4 6]
 [1 3 5]]
---------------------------------------
np.mean(arr):
3.5
---------------------------------------
np.sum(arr):
21
---------------------------------------
按列来计算
[ 1.5  3.5  5.5]
---------------------------------------
按行来计算
[12  9]
---------------------------------------
 

9.any函数和all函数

arr = np.array([False, True, False, False])
print 'arr:'
print arr                            
print '--------------------------------'
print 'arr.any():'
print arr.any()                             # 只要有一个为True,则为True
print '--------------------------------'
print 'arr.all():'
print arr.all()                             # 只要有一个为False,则为False
print '--------------------------------'

arr:
[False  True False False]
--------------------------------
arr.any():
True
--------------------------------
arr.all():
False
--------------------------------

 

10.sort函数

arr = np.random.randn(5)
print 'arr:'
print arr
print '------------------------------------------------------------'
print 'arr.sort():'
arr.sort()                                    # 排序之后,arr本身变化了
print arr
print '------------------------------------------------------------'

arr:
[-0.79041107  1.40614097 -0.81201362 -0.08042629  0.23181889]
------------------------------------------------------------
arr.sort():
[-0.81201362 -0.79041107 -0.08042629  0.23181889  1.40614097]
------------------------------------------------------------

 

11.unique函数:将矩阵元素唯一化,并返回排序好的结果

arr = np.array(['Bob', 'Jame', 'Will', 'Bob', 'Will'])
print 'arr:'
print arr
print '---------------------------------------'
print 'np.unique(arr):'
print np.unique(arr)                    # 将矩阵元素唯一化,并返回排序好的结果
print '---------------------------------------'

arr:
['Bob' 'Jame' 'Will' 'Bob' 'Will']
---------------------------------------
np.unique(arr):
['Bob' 'Jame' 'Will']
---------------------------------------

 

12.in1d函数:判断一个矩阵中是否包含某些元素

arr = np.array([6, 0, 0, 3, 2, 5, 6])
print 'arr:'
print arr
print '---------------------------------------'
print 'np.in1d():'
print np.in1d(arr, [2, 3, 6])                    # 判断一个矩阵中是否包含另一个矩阵的元素
print '---------------------------------------'

arr:
[6 0 0 3 2 5 6]
---------------------------------------
np.in1d():
[ True False False  True  True False  True]
---------------------------------------

 

 

共有 人打赏支持
粉丝 7
博文 13
码字总数 10108
×
wolfoxliu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: