24 декабря 2015 г. 10:01
1)Методы класса ndarray
- ndarray.ndim - количество измерений ил ранк матрицы
- ndarray.shape - возвращает количество измерений по каждой из осей (n,m), где n - количество строк, m - количество столбцов
- ndarray.size - количество элементов в массиве
- ndarray.dtype - тип элементов массива
- ndarray.itemsize - размер в байтах каждого элемента в массиве
- ndarray.data - буфер, содержащий элементы массива
2)Создание массива
import numpy as np
a = np.array([2,3,4])
a.dtype #dtype('int64')
b = np.array([1.2, 3.5, 5.1])
b.dtype #dtype('float64')
#создание двухмерного массива
b = np.array([(1.5,2,3), (4,5,6)])
#создание трехмерного массива
b = np.array([((1.5,0.1,2.0),(1.5,0.1,2.0)), ((1.5,0.1,2.0),(1.5,0.1,2.0))])
#тип элементов может задан в момент создания
c = np.array( [ [1,2], [3,4] ], dtype=complex )
#генерация массивов
np.zeros((3,4)) #cгенерировать массив с одними нулями
np.ones((3,4)) #cгенерировать массив с одними нулями
np.empty((20,30,40,50,60)) #сгенерировать массив 5-мерный массив случайных чисел
np.random.rand(2,2) #матрица случайных чисел
np.random.randn(2,2) #нормально распределение случайных чисел
#генерация последовательного массива чисел
np.arange(10,30,5) #array([10, 15, 20, 25])
np.arange( 0, 2, 0.3 ) #array([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
np.linspace( 0, 2, 9 ) #получить 9 элементов от 0 до 2
#array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
3)Простые операции
a = np.array( [20,30,40,50] )
b = np.arange( 4 )
#разность массивов поэлементно
c = a-b #array([0, 1, 2, 3])
#возведение каждого элемента в квадрат
b**2 #array([0, 1, 4, 9])
#взять синус от каждого элемента и умножить на 10
10*np.sin(a)
#проверить, которые меньше
a<35 #array([ True, True, False, False], dtype=bool)
#произведения матриц
a.dot(b)
np.dot(A, B)
#нахождение суммы,минимума и максимума
a = np.random.random((2,3))
a.sum()
a.min()
a.max()
#применение методов на определенноv измерении
b = np.arange(12).reshape(2,6)
b.sum(axis=0) #сумма по первому измерению
b.min(axis=1) #минимальный элемент по второму измерению
b.cumsum(axis=1) #накопительная сумма по строкам