Numpy的核心array对象以及创建array的方法

array对象的背景:

  • Numpy的核心数据结构,就叫做array就是数组,array对象可以是一维数组,也可以是多维数组;
  • Python的List也可以实现相同的功能,但是array比List的优点在于性能好、包含数组元数据信息、大量的便捷函数;
  • Numpy成为事实上的Scipy、Pandas、Scikit-Learn、Tensorflow、PaddlePaddle等框架的“通用底层语言”
  • Numpy的array和Python的List的一个区别,是它元素必须都是同一种数据类型,比如都是数字int类型,这也是Numpy高性能的一个原因;

array本身的属性

  • shape:返回一个元组,表示array的维度
  • ndim:一个数字,表示array的维度的数目
  • size:一个数字,表示array中所有数据元素的数目
  • dtype:array中元素的数据类型

创建array的方法

  • 从Python的列表List和嵌套列表创建array
  • 使用预定函数arange、ones/ones_like、zeros/zeros_like、empty/empty_like、full/full_like、eye等函数创建
  • 生成随机数的np.random模块构建

array本身支持的大量操作和函数

  • 直接逐元素的加减乘除等算数操作
  • 更好用的面向多维的数组索引
  • 求sum/mean等聚合函数
  • 线性代数函数,比如求解逆矩阵、求解方程组

1. 使用Python的List和嵌套List创建一维的array和二维的array

2. 探索数组array的属性

x为一维的数组,X为二维的数组

3. 创建array的便捷函数

使用arange创建数字序列

arange([start], stop, [ step], dtype=None)

使用ones创建全是1的数组

np.ones(shape, dtype=None, order='C')

shape : int or tuple of ints Shape of the new array, e.g., (2, 3) or 2.

使用ones_like创建形状相同的数组

ones_like(a, dtype=float, order='C')

使用zeros创建全是0的数组

np.zeros(shape, dtype=None, order='C')

使用zeros_like创建形状相同的数组

np.zeros_like(a, dtype=None)

使用empty创建全是0的数组

empty(shape, dtype=float, order='C')
注意:数据是未初始化的,里面的值可能是随机值不要用,这个和zeros不同

使用empty_like创建形状相同的数组

empty_like(prototype, dtype=None)

使用full创建指定值的数组

np.full(shape, fill_value, dtype=None, order='C')

使用random模块生成随机数的数组

randn(d0, d1, ..., dn)

4. array本身支持的大量操作和函数

这些操作如果用Python实现需要写很多for循环,用numpy数组很容易

numpy入门—Numpy的核心array对象以及创建array的方法的更多相关文章

  1. numpy入门—numpy是什么

    numpy是什么?为什么使用numpy 使用numpy库与原生python用于数组计算性能对比

  2. Array对象的创建及其操作方法

    一.创建数组,即实例化数组对象      有三种方式:1. new Array();                          2.new Array(size);               ...

  3. 【PHP面向对象(OOP)编程入门教程】22.把对象串行化serialize()方法,__sleep()方法,__wakeup()方法

    有时候需要把一个对象在网络上传输,为了方便传输,可以把整个对象转化为二进制串,等到达另一端时,再还原为原来的对象,这个过程称之为串行化(也叫序列化), 就像我们现在想把一辆汽车通过轮船运到美国去,因为 ...

  4. JavaScript Array() 对象:push() 和 join() 方法

    <script> var fruits = ["Banana", "Orange", "Apple", "Mango& ...

  5. JavaScript对象的创建之工厂方法

    通过工厂的方式来创建Person对象,在createPerson中创建一个对象,然后为这个对象设置相应的属性和方法,之后返回这个对象. function createPerson(name, age) ...

  6. javascript常用内置对象——Array对象

    Array对象: 创建 Array 对象的语法: new Array(); new Array(元素个数); new Array(element0, element1, ..., elementn); ...

  7. NumPy之:NumPy简介教程

    目录 简介 安装NumPy Array和List 创建Array Array操作 sort concatenate 统计信息 reshape 增加维度 index和切片 从现有数据中创建Array 算 ...

  8. JavaScript Array 对象

    JavaScript Array 对象 Array 对象 Array 对象用于在变量中存储多个值: var cars = ["Saab", "Volvo", & ...

  9. Array对象(一)

    Array是JavaScript中的一个事先定义好的对象(也可以称作一个类),可以直接使用. 创建Array对象: var array = new Array(); 创建指定元素个数的Array对象: ...

随机推荐

  1. WeifenLuo.WinFormsUI.Docking 简单入门

      WinForm布局,开源且好用的貌似不多,WeifenLuo.WinFormsUI.Docking 这个是其中之一,这个唯一的不好地方,就是没有文档,只能通过读源码,不过它源码里面也提供了一个例子 ...

  2. centos7 下配置snort2.9 以及使用

    先安装依赖文件 yum -y install epel-release //需要epel源 yum -y install gcc flex bison zlib zlib-devel libpcap ...

  3. 微信小程序获取经纬度所在城市

    小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名(本文使用的是百度地图) // 获取坐标 onLoad: function (options)  ...

  4. python post请求中Content-Typ为application/x-www-form-urlencoded; charset=UTF-8 解决方案

    # -*- coding: utf-8 -*- import requests import json from urllib import parse import quotes def GtgLo ...

  5. 串口通讯之rs232 c++版本

    rs232.cpp #ifndef kranfix_rs232_rs232_cc #define kranfix_rs232_rs232_cc #include "rs232.h" ...

  6. Chapter05 流程控制(Process Control)

    目录 Chapter05 流程控制 5.1 顺序控制 5.2 分支控制 if-else 单分支基本语法: 双分支基础语法: 多分支基础语法 5.3 嵌套分支 5.4 switch分支结构 5.5 Fo ...

  7. jmeter之如何减负-实现稳定超高并发测试(性能调优)之正确添加监听器

    jmeter之如何减负-实现稳定超高并发测试(性能调优)在测试过程中,初学者使用工具不当,添加众多监控组件,非常想看到实时报告,跑不了一会,jmeter就卡死,只得重启 下面来总结下如何正确使用jme ...

  8. php 23种设计模型 - 原型模式

    原型模式(Prototype) 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式是实现 ...

  9. MYSQL数年库安装

    MySQL系列 MySQL 的三大主要分支mysqlmariadbpercona Server MySQL系列2.2.2.1 MySQL 的三大主要分支mysqlmariadbpercona Serv ...

  10. 一文让你明白CPU上下文切换

    我们都知道,Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行.当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 CPU 轮流分配给它们,造成多任务同时 ...