пакет анализа данных Python | NumPy-02

NumPy
пакет анализа данных Python | NumPy-02

эта статьяГрафический пустышкаБазовое использование.
Впервые опубликовано в моем публичном аккаунте:питоническое существо

Для более удобного чтения нажмите:

пакет анализа данных Python | NumPy-02

1. Одномерный массив

создать массив

In [77]: import numpy as np
In [78]: np.array([1,2,3])
Out[78]: array([1, 2, 3])

Numpy создает массив всех 1, 0 и случайных чисел

In [79]: np.ones(3)
Out[79]: array([1., 1., 1.])

In [80]: np.zeros(3)
Out[80]: array([0., 0., 0.])

In [81]: np.random.random(3)
Out[81]: array([0.95802737, 0.47883203, 0.12742189])

добавление массива

In [83]: data = np.array([1,2])
In [84]: ones = np.ones(2)

In [85]: data
Out[85]: array([1, 2])

In [86]: ones
Out[86]: array([1., 1.])
In [87]: data + ones
Out[87]: array([2., 3.])

Вычитание массива, умножение, деление

In [88]: data - ones
Out[88]: array([0., 1.])

In [89]: data * ones
Out[89]: array([1., 2.])

In [90]: data / ones
Out[90]: array([1., 2.])

Операция массивов и констант, то есть трансляция (трансляция)

In [91]: data * 1.6#这种计算逻辑被称为广播(broadcasting)
Out[91]: array([1.6, 3.2])

индекс массива

In [99]: data = np.array([1,2,3])
In [100]: data
Out[100]: array([1, 2, 3])

In [101]: data[0]
Out[101]: 1

In [102]: data[1]
Out[102]: 2


In [104]: data[0:2]
Out[104]: array([1, 2])

In [105]: data[1:]
Out[105]: array([2, 3])

Простой статистический расчет массива (агрегация)

Некоторые статистические вычислительные функции:

函数名称 描述
np.sum 计算元素的和
np.prod 计算元素的积
np.mean 计算元素的平均值
np.std 计算元素的标准差
np.var 计算元素的方差
np.min 找出最小值
np.max  找出最大值
np.argmin 找出最小值的索引
np.argmax 找出最大值的索引
np.median 计算元素的中位数
np.percentile np.nanpercentile 计算基于元素排序的统计值
np.any 验证任何一个元素是否为真
np.all 验证所有元素是否为真
In [106]: data.max()
Out[106]: 3

In [107]: data.min()
Out[107]: 1

In [108]: data.sum()
Out[108]: 6

2. Двумерный массив

  • построение массива

In [2]: import numpy as np
In [3]: np.array([[1,2],[3,4]])
Out[3]:
array([[1, 2],
       [3, 4]])

единицы, нули, случайное создание массива

In [4]: np.ones((3,2))#元素全为1的数组
Out[4]:
array([[1., 1.],
       [1., 1.],
       [1., 1.]])

In [5]: np.zeros((3,2))#元素全为0的数组
Out[5]:
array([[0., 0.],
       [0., 0.],
       [0., 0.]])

In [6]: np.random.random((3,2))#随机数数组
Out[6]:
array([[0.99160431, 0.94423442],
       [0.77457438, 0.442339  ],
       [0.18536075, 0.44602502]])

Простые операции с массивами (+)

In [7]: data =  np.array([[1,2],[3,4]])
In [8]: ones = np.ones((2,2))
In [9]: data
Out[9]:
array([[1, 2],
       [3, 4]])

In [10]: ones
Out[10]:
array([[1., 1.],
       [1., 1.]])

In [11]: data + ones
Out[11]:
array([[2., 3.],
       [4., 5.]])

Простые операции с массивами (алгоритмы трансляции)

In [12]: ones_row = np.ones(2)
In [13]: data + ones_row#此处又使用到广播(broadcast)的算法
Out[13]:
array([[2., 3.],
       [4., 5.]])

Матричные операции (точка)

Как и в линейной алгебре, массив формы (x, n) умножается на массив формы (n, y), чтобы получить массив формы (x, y), который можно интуитивно понять как первый. Количество столбцов массива равно количеству строк второго.

In [20]: data = np.array([1,2,3])
In [21]: power_of_ten = np.array([1,10,100,1000,10000,100000]).reshape(3,2)

In [22]: data
Out[22]: array([1, 2, 3])

In [23]: power_of_ten
Out[23]:
array([[     1,     10],
       [   100,   1000],
       [ 10000, 100000]])

In [24]: data.dot(power_of_ten)
Out[24]: array([ 30201, 302010])

In [25]: data.shape
Out[25]: (3,)#1行3列的数组

In [26]: power_of_ten.shape
Out[26]: (3, 2)#3行两列的数组

In [27]: data.dot(power_of_ten).shape
Out[27]: (2,)#相乘的一个1行2列的数组

Индекс двумерного массива

In [32]: data = np.arange(1,7).reshape((3,2))
In [33]: data
Out[33]:
array([[1, 2],
       [3, 4],
       [5, 6]])
n [34]: data[0,1]
Out[34]: 2

In [35]: data[1:3]
Out[35]:
array([[3, 4],
       [5, 6]])

In [36]: data[0:2,0]#[0:2,0]可以理解逗号前为行的范围,逗号后为列的范围
Out[36]: array([1, 3])

Статистические операции с двумерными массивами, такими как одномерные массивы.

In [38]: data.max()
Out[38]: 6

In [39]: data.min()
Out[39]: 1

In [40]: data.sum()
Out[40]: 21

Статистические операции с двумерным массивом вдоль оси (передача параметра оси)

In [43]: data = np.array([[1,2],[5,3],[4,6]])
In [44]: data
Out[44]:
array([[1, 2],
       [5, 3],
       [4, 6]])

In [46]: data.max()
Out[46]: 6

In [47]: data.min()
Out[47]: 1

In [48]: data.sum()
Out[48]: 21

In [49]: data.max(axis=0)#求每一列(0轴)的最大值
Out[49]: array([5, 6])

In [50]: data.max(axis=1)#求每一行(1轴)的最大值
Out[50]: array([2, 5, 6])
  • Двумерный массив для ранжирования (строка в столбец или 1 ось в 0 ось)

In [51]: data = np.arange(1,7).reshape(3,2)
In [52]: data
Out[52]:
array([[1, 2],
       [3, 4],
       [5, 6]])

In [53]: data.T
Out[53]:
array([[1, 3, 5],
       [2, 4, 6]])

Деформация двумерного массива (изменение формы)

In [54]: data = np.arange(1,7)
In [55]: data
Out[55]: array([1, 2, 3, 4, 5, 6])
In [56]: data.reshape(2,3)
Out[56]:
array([[1, 2, 3],
       [4, 5, 6]])

In [57]: data.reshape(3,2)
Out[57]:
array([[1, 2],
       [3, 4],
       [5, 6]])

3. Трехмерный массив

Создайте трехмерный массив

In [65]: np.ones((4,3,2))#下图能形象的显示意义
Out[65]:
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.]]])
In [66]: np.arange(1,9).reshape(2,2,2)#下图更形象
Out[66]:
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])

использованная литература

Джиангала Wrangler.GitHub.IO/visual-numP…
Справочник по науке о данных Python
Станция B выше:воооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо


Для более удобного чтения нажмите:

пакет анализа данных Python | NumPy-02


Добро пожаловать в публичный аккаунт:питоническое существо 干货,真香