numpy基本使用

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]])

你可能感兴趣的:(numpy基本使用)