经常出现这样的情况,以前会的知识,过一段时间有不会了,大多数人把它归结于遗忘.无论怎么样,下一次你不会了,肯定又得浪费时间去查资料,那为什么不他们记录下来了.

np.where

这个函数其实很有用,能根据array的找到相应的位置,不过奇葩的是返回的位置却是pyhton中tuple类型

1
2
3
4
5
import numpy as np
a=np.array([1,2,3,1,4])
b=np.array([[1,2,3],[2,5,1],[7,3,1]])
print np.where(a==1)
print np.where(b==1)

结果

1
2
(array([0, 3]),)
(array([0, 1, 2]), array([0, 2, 2]))

np.sum

这个函数本来没多复杂,不过我个人的理解上有点小问题,按axis相加总是理解反了

1
2
3
4
5
6
7
8
import numpy as np
a=np.array([[1,2],[3,4],[5,6]])
# 所有元素都加起来
sum1=np.sum(a)
# 按列相加(不应该是axis=1吗),其实就是把每一行对应的位置相加
sum2=np.sum(a,axis=0)
#按行相加
sum3=np.sum(a,axis=1)

np.maximum

这个函数就有点意思,它能够比较两个array,并且能够返回对应位置的值大的元素

1
2
3
4
import numpy as np
a=np.array([1,2,3,8])
b=np.array([4,5,3,6])
print np.maximum(a,b)

结果

1
[4 5 3 8]

除法

和其他语言一样,会出现如下现象

1
1/2=0

解决方法

1
from __future__ import division