numpy是python中科学计算不可或缺的库
import numpy as np
x #x为一个数组
函数名 | 用法 | 解释 |
---|---|---|
sqrt | np.sqrt(x) | 计算数组元素的平方根 |
log | np.log(x) | 计算数组元素的自然对数 |
arange | np.arange(m,n) | 生成一个指定范围的数组 |
astype | np.astype(x) | 把数组元素转化为特定的数据类型 |
sum() | np.sum(x) | 计算数组元素之和 |
np.ceil():对数组元素向上取整
x = array([2.9,3.2,5.19])
print(np.ceil(x))
[ 3. 4. 6.]
np.modf:返回浮点数的小数部分和整数部分
x = array([2.9,3.2,5.19])
print(np.modf(x))
(array([ 0.9 , 0.2 , 0.19]), array([ 2., 3., 5.]))
np.where():返回符合条件的数组元素的索引值
x = array([1.,2.,3.4,5.0])
f = np.modf(x)[0]
In [57]: indices = np.where(f==0)
In [58]: indices
Out[58]: (array([0, 1, 3], dtype=int64),)
np.ravel():返回一个展开的一维数组
np.take():从数组中取出指定元素
In [61]: x = np.arange(10)
In [62]: indices = np.where(x%2==0)
In [63]: y = np.take(x,indices)
In [64]: y
Out[64]: array([[0, 2, 4, 6, 8]])
寻找回文数:np.outer(),np.raval()
import numpy as np
import numpy.testing
#寻找三位数字乘积的最大回文数
a = np.arange(100,1000)
n = np.outer(a,a) # 返回数组的外积
n = np.ravel(n) # 返回一个展开的一维数组
n.sort()
for i in range(-1,-1*len(n),-1):
s = str(n[i])
if s == s[::-1]:
print(s)
break
print:906609
筛选法求质数
#求第10001个质数
import numpy as np
LIM = 10**6
N = 10**9
P = 10001
primes = []
p=2
def check_primes(a,p):
a = a[a%p!=0]
return a
for i in range(3,N,LIM):
a = np.arange(i,i+LIM,2)
while len(primes)
np.cumsum
>>> a = np.array([[1,2,3], [4,5,6]])
>>> a
array([[1, 2, 3],
[4, 5, 6]])
>>> np.cumsum(a)
array([ 1, 3, 6, 10, 15, 21])
>>> np.cumsum(a, dtype=float) # specifies type of output value(s)
array([ 1., 3., 6., 10., 15., 21.])
>>>
>>> np.cumsum(a,axis=0) # sum over rows for each of the 3 columns
array([[1, 2, 3],
[5, 7, 9]])
>>> np.cumsum(a,axis=1) # sum over columns for each of the 2 rows
array([[ 1, 3, 6],
[ 4, 9, 15]])