Python numpy库的一些常用知识

NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等

首先是安装numpy库

pip install numpy

NumPy的主要对象是同构多维数组。它是一个元素表(通常是数字),所有类型都相同,由非负整数元组索引。在NumPy维度中称为 轴
NumPy的数组类被调用ndarray。它也被别名所知 array。请注意,numpy.array这与标准Python库类不同array.array, 后者只处理一维数组并提供较少的功能。 下面则是ndarray的属性:

ndarray.ndim - 数组的轴(维度)的个数。在Python世界中,维度的数量被称为rank。
ndarray.shape - 数组的维度。这是一个整数的元组,表示每个维度中数组的大小。对于有 n 行和 m 列的矩阵,shape 将是 (n,m)。因此,shape 元组的长度就是rank或维度的个数 ndim。
ndarray.size - 数组元素的总数。这等于 shape 的元素的乘积。
ndarray.dtype - 一个描述数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。例如numpy.int32、numpy.int16和numpy.float64。
ndarray.itemsize - 数组中每个元素的字节大小。例如,元素为 float64 类型的数组的 itemsize 为8(=64/8),而 complex32 类型的数组的 itemsize 为4(=32/8)。它等于 ndarray.dtype.itemsize 。
ndarray.data - 该缓冲区包含数组的实际元素。通常,我们不需要使用此属性,因为我们将使用索引访问数组中的元素

import numpy as np
a = np.arange(15).reshape(3, 5)
a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])

a.shape
(3, 5)

a.ndim
2

a.dtype.name
‘int64’

a.itemsize
8

a.size
15

type(a)

b = np.array([6, 7, 8])
b
array([6, 7, 8])

type(b)

数组创建

import numpy as np
a = np.array([2,3,4])
a
array([2, 3, 4])

a.dtype
dtype(‘int64’)

b = np.array([1.2, 3.5, 5.1])
b.dtype
dtype(‘float64’)
注意一个常见错误 我们传进去的是一个列表

a = np.array(1,2,3,4) # 错误
a = np.array([1,2,3,4]) # 正确

numpy的函数zeros创建一个由0组成的数组,函数 ones创建一个完整的数组,函数empty 创建一个数组,其初始内容是随机的
取决于内存的状态。默认情况下,创建的数组的dtype是 float64 类型的

np.zeros( (3,4) )
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])

np.ones( (2,3,4), dtype=np.int16 ) # 也可以指定dtype
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]]], dtype=int16)

np.empty( (2,3) ) # 未初始化,输出可能会变化
array([[ 3.73603959e-262, 6.02658058e-154, 6.55490914e-260],
[ 5.30498948e-313, 3.14673309e-307, 1.00000000e+000]])

创建数字组成的数组,NumPy提供了一个类似于range的函数,该函数返回数组而不是列表

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

原文链接:木罗门

你可能感兴趣的:(技术)