In [1]:
# 常用包:numpy,这个基本上是固定写法
import numpy as np
In [2]:
la = [1,2,4,8,16,32]  # 列表,注意:列表和数组有很大区别
In [3]:
aa = np.array(la)  # 利用列表创建数组
In [4]:
aa
Out[4]:
array([ 1,  2,  4,  8, 16, 32])
In [5]:
aa = np.array((1,2,4,8,16,32))  # 利用元组创建数组,注意两层括号的不同
aa
Out[5]:
array([ 1,  2,  4,  8, 16, 32])
In [6]:
ab = np.array(
    (
        (1,2,4),
        (8,16,32,),
    ),
    dtype=np.int32,
)  # 嵌套列表创建数组,结果是二维数组。这里还指定了数据类型
ab
Out[6]:
array([[ 1,  2,  4],
       [ 8, 16, 32]], dtype=int32)
In [7]:
aa.dtype, aa.shape, ab.dtype, ab.shape   # 数组的数据类型和大小
Out[7]:
(dtype('int64'), (6,), dtype('int32'), (2, 3))
In [8]:
np.zeros(6) + 3  # 零数组及其应用(转变成其他值)
Out[8]:
array([3., 3., 3., 3., 3., 3.])
In [9]:
np.ones_like(ab)  # 一数组,以及xxx_like函数系列
Out[9]:
array([[1, 1, 1],
       [1, 1, 1]], dtype=int32)
In [10]:
np.arange(3, 124, 8)  # 等差数列
Out[10]:
array([  3,  11,  19,  27,  35,  43,  51,  59,  67,  75,  83,  91,  99,
       107, 115, 123])
In [11]:
np.linspace(3, 124, 9)  # 线性插值序列
Out[11]:
array([  3.   ,  18.125,  33.25 ,  48.375,  63.5  ,  78.625,  93.75 ,
       108.875, 124.   ])
In [12]:
np.random.rand()  # 随机数
Out[12]:
0.28845597454571725
In [13]:
np.sum(ab)  # 统计函数 sum/min/max/mean/median/std
Out[13]:
63
In [14]:
np.sum(ab, axis=0)  # 可以针对某个下标进行统计
Out[14]:
array([ 9, 18, 36])
In [15]:
np.std(ab)
Out[15]:
10.828203913853857
In [16]:
ab, np.rot90(ab) # 二维数组,作为图像,直接有函数进行旋转
Out[16]:
(array([[ 1,  2,  4],
        [ 8, 16, 32]], dtype=int32),
 array([[ 4, 32],
        [ 2, 16],
        [ 1,  8]], dtype=int32))
In [17]:
ab.mean()
Out[17]:
10.5
In [18]:
np.matmul(ab, np.rot90(ab))  # 数组也可以作为矩阵进行矩阵运算
Out[18]:
array([[ 12,  96],
       [ 96, 768]], dtype=int32)
In [19]:
sp = np.empty((10,),  dtype=[('Wave', float), ("Flux", float)])  # 结构体数组,或者叫记录数组
In [20]:
print(sp)
[(-3.10503618e+231, -3.10503618e+231) (-6.91691904e-323,  0.00000000e+000)
 ( 5.45352918e-312,  1.26480805e-321) ( 0.00000000e+000,  0.00000000e+000)
 ( 1.77229088e-310,  3.50977866e+064) ( 0.00000000e+000,  0.00000000e+000)
 (             nan,              nan) ( 3.50977942e+064,  1.50008929e+248)
 (-3.10503618e+231, -3.10503618e+231) ( 2.96439388e-323,  0.00000000e+000)]
In [21]:
sp['Wave']  # 按列访问
Out[21]:
array([-3.10503618e+231, -6.91691904e-323,  5.45352918e-312,
        0.00000000e+000,  1.77229088e-310,  0.00000000e+000,
                    nan,  3.50977942e+064, -3.10503618e+231,
        2.96439388e-323])
In [ ]: