首页 > 其他分享 >Numpy

Numpy

时间:2023-02-27 03:22:06浏览次数:32  
标签:NumPy dtype 数组 np array Numpy ndarray

NumPy

什么是 NumPy ?

  NumPy 是 Python 中科学计算的基础包。

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

  • NumPy 包的核心是 ndarray 对象,它封装了 Python 原生的同数据类型的 n 维数组

  • 为了保证其性能优良,其中有许多操作都是代码在本地进行编译后执行的。

  NumPy 数组和原生 Python Array (数组)之间有几个重要的区别:

方面 NumPy 数组 Python 原生数组
大小 固定大小 动态增长
数据类型 相同 允许不同
效率
代码量
(基于Python的科学和数学软件包)使用 越来越多使用 通常都支持

为什么 NumPy 这么快?

  • 矢量化

  • 广播

介绍

基础知识

  NumPy 的主要对象是同构多维数组:一个元素表(通常是数字),所有类型都相同,由非负整数元组索引。——

举例:3D空间中的

  • [1, 2, 1]:一个轴,该轴有三个元素,长度为3

  • [[ 1., 0., 0.],[ 0., 1., 2.]]:两个轴,第一轴的长度为2,第二轴的长度为3。

  • NumPy 的数组类被调用 ndarray(别名 array),numpy.array

  • Python 的数组类被调用 array,array.array

前者更重要的属性:

  • ndarray.ndim - 数组的轴(维度)的个数。
  • ndarray.shape - 数组的维度。
  • ndarray.size - 数组元素的总数。
  • ndarray.dtype - 数组元素的类型。
  • ndarray.itemsize - 数组中每个元素的字节大小。

等于 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]])
type(a)

numpy.ndarray

a.ndim

2

a.shape

(3, 5)

a.size

15

a.dtype

dtype('int32')

a.itemsize

4

a.data

<memory at 0x0000022E0246B040>

创建

  使用 array 函数从常规 Python 列表或元组中创建数组,得到的数组的类型是从 Python 列表中元素的类型推导出来的。

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

array([2, 3, 4])

a.dtype

dtype('int32')

b = np.array([1.2, 3.5, 5.1])
b

array([1.2, 3.5, 5.1])

b.dtype

dtype('float64')

Tip:常见的错误,就是调用 array 的时候传入多个数字参数,而不是提供单个数字的列表类型作为参数。

# a = np.array(1,2,3,4)    # WRONG
a = np.array([1,2,3,4])  # RIGHT
a

array([1, 2, 3, 4])

array 还可以将序列的序列转换成二维数组,将序列的序列的序列转换成三维数组,等等。

b = np.array([(1.5,2,3), (4,5,6)])
b
array([[1.5, 2. , 3. ],
       [4. , 5. , 6. ]])
c = np.array( [ [1,2], [3,4] ], dtype=complex )
c
array([[1.+0.j, 2.+0.j],
       [3.+0.j, 4.+0.j]])

  通常,数组的元素最初是未知的,但它的大小是已知的。因此,NumPy 提供了几个函数来创建具有初始占位符内容的数组。这就减少了数组增长的必要,因为数组增长的操作花费很大。

  • 函数 zeros 创建一个由0组成的数组
  • 函数 ones 创建一个由1组成的数组
  • 函数 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 )
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([[1.5, 2. , 3. ],
       [4. , 5. , 6. ]])
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 )

array([0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])

from numpy import pi
x = np.linspace( 0, 2*pi, 100 )
f = np.sin(x)

入门

基础

杂项

标签:NumPy,dtype,数组,np,array,Numpy,ndarray
From: https://www.cnblogs.com/tlo-liangjiajia/p/17158381.html

相关文章

  • numpy中的矩阵
    numpy中的矩阵1.矩阵矩阵,和array的区别是矩阵必须是2维的,但array可以是多维的2.向量3.加法和标量相乘4.矩阵向量乘法矩阵乘法遵循准则:(M行,N列)*(N行,L列)=(M行,L列)......
  • numpy的ndarray的运算
    ndarray的运算1.逻辑运算score=np.random.randint(40,100,(10,5))#生成一个10行5列取值在40-50之间的数组test_sore=score[6:,0:5]#从第6行开始到末尾,5列,取出4名同......
  • python numpy 中的冒号
    python中冒号实际上有两个意思:1.全部选择matrix1[1,:]表示matrix的第1行的所有元素matrix1[:,1]表示matrix的第1列的所有元素2.表示区间,含左不含右matrix1[1,0:......
  • numpy数组的基本操作
    数组的基本操作1.数组的索引、切片一维、二维、三维的数组切片直接进行索引,切片对象[:,:]—先行后列#对于二维数组x1=np.random.uniform(0,1,[4,5])#生成一......
  • python pip install numpy & scipy from repository tinghua
    python.exe-mpipinstall--upgradepippython-mpipinstall--upgradepippipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simple--upgradepippipinstal......
  • 利用Python进行数据分析——Numpy
    基础索引1.多维度数组1.1二维数组此部分好理解,画一个平面的XY轴,X为横轴,Y为竖轴即可理解。1.2三维数组难点在于理解的是如何把抽象的数组转化为三维空间的数据结构。......
  • 机器学习-numpy基础用法
    NUMPY基础#基础语法#输出[1258],类型为<class'numpy.ndarray'>,从python列表构建numpy数组a=np.array([1,2,5,8])#制造一系列等距点,组成数组,前者为浮点数,......
  • numpy定义空数组及其拼接
     numpy三维数组拼接_fK0pS的博客-CSDN博客_numpy三维矩阵拼接......
  • python学习笔记五:numpy
    ndarray是一个多维数组的数据结构1.彩色图像是一个三维数组,通过matplotlib显示图像#显示图像importnumpyasnpimportmatplotlib.pyplotaspltfish=plt.imread('HappyF......
  • numpy1(ndarray的属性/形状/类型)
    numpy1.numpy基础一个开元的python科学计算库计算起来要比python简洁高效Numpy使用ndarray对象来处理多维数组ndarry的优势内存块风格python中的list—分离式存......