numpy之通用函数

通用函数-元素级数组函数

通用函数(ufunc)是一种对ndarray执行元素级运算的函数。

一元ufunc


import numpy as np
arr = np.arange(-10,10,2)
arr
Out[5]: array([-10,  -8,  -6,  -4,  -2,   0,   2,   4,   6,   8])

np.abs(arr)#绝对值
Out[7]: array([10,  8,  6,  4,  2,  0,  2,  4,  6,  8])
np.fabs(arr)#绝对值
Out[8]: array([ 10.,   8.,   6.,   4.,   2.,   0.,   2.,   4.,   6.,   8.])

1.abs、fabs计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs。

arr1 = np.arange(16)

np.sqrt(arr1)#平方根,即arr1 ** 0.5
Out[19]: 
array([ 0.        ,  1.        ,  1.41421356,  1.73205081,  2.        ,
        2.23606798,  2.44948974,  2.64575131,  2.82842712,  3.        ,
        3.16227766,  3.31662479,  3.46410162,  3.60555128,  3.74165739,
        3.87298335])

np.square(arr1)#平方
Out[20]: 
array([  0,   1,   4,   9,  16,  25,  36,  49,  64,  81, 100, 121, 144,
       169, 196, 225], dtype=int32)

arr2 = np.exp(arr1)#各元素的指数e**x
Out[21]: 
array([  1.00000000e+00,   2.71828183e+00,   7.38905610e+00,
         2.00855369e+01,   5.45981500e+01,   1.48413159e+02,
         4.03428793e+02,   1.09663316e+03,   2.98095799e+03,
         8.10308393e+03,   2.20264658e+04,   5.98741417e+04,
         1.62754791e+05,   4.42413392e+05,   1.20260428e+06,
         3.26901737e+06])

np.log(arr2) #自然对数(底数为e)
Out[24]: 
array([  0.,   1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.,
        11.,  12.,  13.,  14.,  15.])
  1. log10,log2,log1p,其底数分别为,10,2;以及log(1+ P)
  2. singn 计算个元素正负号,1(正数),0(零),-1(负数)
np.sign(arr) #正负号
Out[25]: array([-1, -1, -1, -1, -1,  0,  1,  1,  1,  1])
  1. ceil返回大于等于该值的最小整数。
  2. floor 返回小于等于该值的最大整数。
  3. rint四舍五入,保留dtype。
  4. modf将数组的小数和整数部分一两个独立数组的形式返回。
arr3 = np.random.randn(5)

arr3
Out[27]: array([ 0.0830739 , -2.18172821,  0.77026638,  0.70735324, -1.02929973])

np.ceil(arr3)#返回>=最小整数
Out[28]: array([ 1., -2.,  1.,  1., -1.])

np.floor(arr3)#返回<=最大整数
Out[29]: array([ 0., -3.,  0.,  0., -2.])

np.rint(arr3)#四舍五入
Out[30]: array([ 0., -2.,  1.,  1., -1.])

np.modf(arr3)#拆分整数和小数
Out[31]: 
(array([ 0.0830739 , -0.18172821,  0.77026638,  0.70735324, -0.02929973]),
 array([ 0., -2.,  0.,  0., -1.]))
  1. isnan返回布尔型数组,表示哪些值是NaN(非数字)。
  2. isfinite/isinf返回布尔型数组,表示哪些元素是有穷的(非inf,非NaN)或那些是无穷的。
  3. cos,cosh,sin,sinh,tan,tanh普通型和双曲型三角函数。
  4. arccos,arccosh,arcsin,arcsinh,asrtan,arctanh反三角函数。
  5. logical_not计算个元素的not x的真值,相当于-arr。

arr4 = np.arange(-10,10,2)
np.logical_not(arr4<=0)
Out[39]: array([False, False, False, False, False, False,  True,  True,  True,  True], dtype=bool)

二元ufunc

  1. add 元素对应相加。
  2. subtract 第一个数组元素减去第二个的元素。
  3. multiply 数组元素相乘。
  4. divide,floor_divide 除法,或向下整除(丢弃余数)。
  5. power第一个数组中的元素A,第二个数组中的元素B,返回A的B次方。
arr5 = np.arange(10)

arr6 = np.arange(10,20)

np.add(arr5,arr6) #相加
Out[44]: array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])

np.subtract(arr6,arr5)#相减
Out[47]: array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10])

np.multiply(arr5,arr6)#对应相乘
Out[48]: array([  0,  11,  24,  39,  56,  75,  96, 119, 144, 171])

np.divide(arr5,arr6)#相除
Out[50]: 
array([ 0.        ,  0.09090909,  0.16666667,  0.23076923,  0.28571429,
        0.33333333,  0.375     ,  0.41176471,  0.44444444,  0.47368421])

arr7 = np.arange(20,30)

np.floor_divide(arr7,arr6)#整除
Out[54]: array([2, 1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=int32)

arr8 = np.arange(5)
arr9 = np.arange(5,10)

np.power(arr9,arr8)#次幂
Out[60]: array([   1,    6,   49,  512, 6561], dtype=int32)

  1. maximum,fmax返回两个数组中较大值组成的数组。fmax忽略NaN。
  2. minimum,fmin同上。
  3. mod求模,即求余数。
  4. copysign第二个数组的符号,复制给第一个数组。
x = np.random.randn(5)

y = np.random.randn(5)

x
Out[65]: array([-1.34391461,  0.58819335,  0.19195261, -0.5660927 ,  0.98594434])

y
Out[66]: array([-0.57704395, -0.40143752, -0.83931321, -0.38734544,  1.2436085 ])

np.maximum(x,y)#元素及最大值计算
Out[68]: array([-0.57704395,  0.58819335,  0.19195261, -0.38734544,  1.2436085 ])

np.minimum(x,y)#元素级最小值计算
Out[69]: array([-1.34391461, -0.40143752, -0.83931321, -0.5660927 ,  0.98594434])

m = np.arange(1,5)

n = np.arange(6,10)

np.mod(n,m)#求模
Out[83]: array([0, 1, 2, 1], dtype=int32)

np.copysign(y,x)#符号复制
Out[90]: array([-0.57704395,  0.40143752,  0.83931321, -0.38734544,  1.2436085 ])

  1. greater,greater_equal,less,less_equal,equal,not_euqal元素级比较运算,最终产生布尔型数组,相当于>,>=,<,<=,==,!=。
  2. logical_and,logical_or,logical_xor元素级真值运算,相当于&,|,^。
In [2]: x = np.arange(6)

In [3]: t = np.arange(1,13,2)

In [7]: np.greater(x,t)
Out[7]: array([False, False, False, False, False, False], dtype=bool)

In [8]: np.less_equal(x,t)
Out[8]: array([ True,  True,  True,  True,  True,  True], dtype=bool)

In [10]: np.logical_and(x > 0,t <0)
Out[10]: array([False, False, False, False, False, False], dtype=bool)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 来源:NumPy Tutorial - TutorialsPoint 译者:飞龙 协议:CC BY-NC-SA 4...
    布客飞龙阅读 32,488评论 6 96
  • numpy的数据类型 使用numpy 创建ndarrays 数据类型使用以及转换 ndarry 标量之间的计算• ...
    MicoCube阅读 971评论 0 1
  • 目录: Tab 键自动完成 %run命令 “Ctri-C” 中断正在执行的代码 忘记输入和输出文本怎么办 创建数组...
    鬼宇书生阅读 791评论 0 2
  • 我一直执着于祛脸上的斑。 我的斑是天生的。从我有记忆,它就有。 以前也许是脸上胶原蛋白多,也许是认知层面没有重视。...
    当妈姐阅读 966评论 8 4
  • php trait手册 trait就是为了避免代码重复而生 优先级 从基类继承的成员会被 trait 插入的成员所...
    云龙789阅读 353评论 0 0