ipython --之Numpy

定义:

NumPy是高性能科学计算和数据分析的基础包。它是pandas等其他各种工具的基础。

NumPy的主要功能:

ndarray,一个多维数组结构,高效且节省空间

无需循环对整组数据进行快速运算的数学函数

*读写磁盘数据的工具以及用于操作内存映射文件的工具

*线性代数、随机数生成和傅里叶变换功能

*用于集成C、C++等代码的工具

安装方法:pip install numpy

引用方式:import numpy as np

二:ndarray-多维数组对象

ndarray是多维数组结构,

与列表的区别是: 1,数组对象内的元素类型必须相同 2,数组大小不可修改

 

 

 

五:实例:

j=[1,2,3,4,5]
r=[2,3,4,5,6]

j=np.array(j)
r=np.array(r)
l=j*r
==>l
array([2,6,12,20,30])
两个array相乘
arr=np.array[[1,2,3],[2,3,4]]
arr.T

==>
array([[1, 2],
       [2, 3],
       [3, 4]])
arr.T
arr=array([[1, 2],
       [2, 3],
       [3, 4]])

arr.dtype  ===dtype('int32')
arr.size==6
arr.ndim==2
arr.shape==(2,3)  PS:数组形式   表示维度大小
size,ndim,dtype,shape
arr=np.array([1.2,3.4,5.6])
arr=arr.astype('int')

==>array([1, 3, 5])  去出小数,取整数

np.arange(1,10,0.2)  #range的翻版

==>
array([1. , 1.2, 1.4, 1.6, 1.8, 2. , 2.2, 2.4, 2.6, 2.8, 3. , 3.2, 3.4,
       3.6, 3.8, 4. , 4.2, 4.4, 4.6, 4.8, 5. , 5.2, 5.4, 5.6, 5.8, 6. ,
       6.2, 6.4, 6.6, 6.8, 7. , 7.2, 7.4, 7.6, 7.8, 8. , 8.2, 8.4, 8.6,
       8.8, 9. , 9.2, 9.4, 9.6, 9.8])
astype,arange,
np.zeros((1,2,3),dtype='int')
==>
array([[[0, 0, 0],
        [0, 0, 0]]])
#一个数组,二横,三列

np.ones((2,3,4),dtype='int')
==>
array([[[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]],

       [[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]]])
#2个大数组,三横,四列

np.empty((4,6),dtype='int')

array([[2057632264,        371,         64,          0,          0,
                 0],
       [         0,          0,          0,    7209071, 1684222001,
         811755057],
       [1630679653, 1684300646,  808871475,  895628336,  842294836,
         912417377],
       [ 892757348,  892809574, 1701012792,  959789410, 1697735986,
        1633890917]])

#4横6列的随机数

np.eye(4,dtype='int')

array([[1, 0, 0, 0],
       [0, 1, 0, 0],
       [0, 0, 1, 0],
       [0, 0, 0, 1]])
#边长为5的数组
zeros,ones,eye,empty
arr=np.arange(20).reshape(4,5)


array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
reshape
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])

arr[1][3] ==8

arr[1,3] ==8
切片
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
arr[1:3,2:4]

==>
array([[ 7,  8],
       [12, 13]])

#他是取第一行和第二行
再从第一行和第二行之间取  2-4列的数
切片拓展
b=[random.randint(1,10) for i in range(20)
list(filter(lambda x:x>5,b))

==>
[9, 9, 9, 9, 8, 7, 10]
filter
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])

arr2[:,[1,3]][[1,3],:]

array([[ 6,  8],
       [16, 18]])
切片再深度
arr=array([ 2,  2,  1,  2,  9,  1,  2,  2,  9,  9,  3,  9,  5,  1,  5,  8,  2,
        7, 10,  1])

arr(arr.arange(0,arr.size,2)
==>
array([ 2,  1,  9,  2,  9,  3,  5,  5,  2, 10])

arr(arr.arange(0,arr.size,4)
array([2, 9, 9, 5, 2])
arange, ~
arr = np.array([random.uniform(-5,5) for _ in range(20)])

array([ 4.04565696,  1.19190597,  0.63930306,  3.07415326,  3.17752185,
        4.25314581, -3.13307449, -1.1630629 , -3.38121501, -1.99839443,
        3.13160442, -2.29378581,  2.58989142,  4.46074874, -0.24500954,
       -1.63483659,  3.54216199, -4.35408201,  0.12284761,  2.26431038])

np.abs(arr) ** 0.5
array([ 2.01138185,  1.09174446,  0.79956429,  1.75332634,  1.78256048,
        2.06231564,  1.77004929,  1.07845394,  1.83880804,  1.41364579,
        1.76963398,  1.51452495,  1.60931396,  2.11204847,  0.49498438,
        1.27860729,  1.88206323,  2.08664372,  0.35049624,  1.50476257])


ceil:向上取整 3.6 -》4 3.1-》4 -3.1-》-3

floor:向下取整:3.6-》3 3.1-》3 -3.1-》-4

rint(round):四舍五入:3.6-》4 3.1-》3 -3.6-》-4

trunc(int):向零取整(舍去小数点后) 3.6-》3 3.1-》3 -3.1-》-3


a,b=np.modf(arr)

(array([ 0.04565696,  0.19190597,  0.63930306,  0.07415326,  0.17752185,
         0.25314581, -0.13307449, -0.1630629 , -0.38121501, -0.99839443,
         0.13160442, -0.29378581,  0.58989142,  0.46074874, -0.24500954,
        -0.63483659,  0.54216199, -0.35408201,  0.12284761,  0.26431038]),
 array([ 4.,  1.,  0.,  3.,  3.,  4., -3., -1., -3., -1.,  3., -2.,  2.,
         4., -0., -1.,  3., -4.,  0.,  2.]))
uniform,abs,rint,modf,inf
arr=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr.cumsum()

==>
array([ 0,  1,  3,  6, 10, 15, 21, 28, 36, 45], dtype=int32)
arr.cumsum()
np.random.choice([2,3,4,5,6,7],(1,5))

array([[7, 2, 2, 3, 7]])
choice
原文地址:https://www.cnblogs.com/52forjie/p/8379569.html