Numpy学习之——数组创建

过程展示

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

array([2, 3, 9])

a.dtype

dtype('int32')

b = np.array([1.2,2.3,3])
b

array([1.2, 2.3, 3. ])

b.dtype

dtype('float64')

常见的错误是:直接将多个数值当做参数传递,正确的做法是将他们以列表或数组的方式传递

# a = np.array(1,2,3)#错误
b = np.array([1,2,3])#正确
b = np.array([(1.5,2.2),(4.5,3.9)])
b

array([[1.5, 2.2],

[4.5, 3.9]])

c = np.array([(1.5,2.2),(4.5,3.9)],dtype=complex)
c

array([[1.5+0.j, 2.2+0.j],

[4.5+0.j, 3.9+0.j]])

s = "Hello! Mr.shi"
np.array(s)

array('Hello! Mr.shi', dtype='<U13')

创建带有初占位符内容的数组

  • np.zeros()
  • np.ones()
  • np.empty()初始内容为0或者垃圾值,取决于当前内存的状态
  • np.full(,x)创建一个全部由x填充的数组

默认情况下,数据类型为float64

注意:小数点表示是浮点数

np.zeros((5,),dtype=np.float)

array([0., 0., 0., 0., 0.])

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([[6.23042070e-307, 1.60217812e-306, 1.11261638e-306],

[9.34605037e-307, 8.34451504e-308, 2.46155397e-312]])

np.full((3,4),25)

array([[25, 25, 25, 25],

[25, 25, 25, 25],

[25, 25, 25, 25]])

Numpy还提供了一个返回array序列的函数,而不是返回python的序列

他就是arange函数

函数原型:np.arange(start,stop,step,dtype)

分别对应:

起始,终止(不包含),步长,数据类型(缺省会使用数据的输入类型)

np.arange(2,9)

array([2, 3, 4, 5, 6, 7, 8])

np.arange(1,9,2)

array([1, 3, 5, 7])

由于range函数对于浮点数,使用步长时会出现精度的问题

使用linspace(),它的第三个参数为生成点个数(步长会自动计算)

函数原型:linspace(start,stop,num,endpoint,retstep,dtype)

分别为:起始、终止(包含)、要生成的数量、endpoint序列中是否包含stop(默认True)、retstep(True返回样例及步长)、数据类型

from numpy import pi
np.linspace(0,2,9)

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

np.linspace(6,1,2,retstep=True)

(array([6., 1.]), -5.0)

matplptlib使用

%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np x = np.linspace(0,2*pi,100)
f = np.sin(x)
plt.plot(x,f)

<IPython.core.display.Javascript object>

[<matplotlib.lines.Line2D at 0xe9c6ad0>]

在notebook中显示需要使用魔法命令

%matplotlib notebook

更深入的定制和查看全局选项,可以打开matplotlib/mpl-data下面的文件,修改后放置在home下以.matplotlibrc命名,每次使用时便会读取配置文件

Numpy学习之——数组创建的更多相关文章

  1. NumPy学习2:创建数组

    1.使用array创建数组 b = array([2, 3, 4])print bprint b.dtype 2.把序列转化为数组 b = array( [ (1.5,2,3), (4,5,6) ] ...

  2. PHP学习之中数组--创建数组【1】

    在PHP中数组的定义有三种写法,分别是: <?php //第一种方式是用关键字 array来创建的 $username = array("demo1","demo2 ...

  3. Numpy 多维数组简介

     NumPy是一个功能强大的Python库,主要用于对多维数组执行计算.NumPy这个词来源于两个单词-- Numerical和Python.NumPy提供了大量的库函数和操作,可以帮助程序员轻松地 ...

  4. Numpy 学习之路(1)——数组的创建

    数组是Numpy操作的主要对象,也是python数据分析的主要对象,本系列文章是本人在学习Numpy中的笔记. 文章中以下都基于以下方式的numpy导入: import numpy as np fro ...

  5. NumPy 从数值范围创建数组

    NumPy 从数值范围创建数组 这一章节我们将学习如何从数值范围创建数组. numpy.arange numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下: ...

  6. NumPy 从已有的数组创建数组

    NumPy 从已有的数组创建数组 本章节我们将学习如何从已有的数组创建数组. numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 只有 ...

  7. 【学习笔记】 第04章 NumPy基础:数组和矢量计算

    前言 正式开始学习Numpy,参考用书是<用Python进行数据清洗>,计划本周五之前把本书读完,关键代码全部实现一遍 NumPy基础:数组和矢量计算 按照书中所示,要搞明白具体的性能差距 ...

  8. NumPy学习_00 ndarray的创建

    1.使用array()函数创建数组 参数可以为:单层或嵌套列表:嵌套元组或元组列表:元组或列表组成的列表 # 导入numpy库 import numpy as np # 由单层列表创建 a = np. ...

  9. Numpy学习一:ndarray数组对象

    NumPy是Python的一个高性能科学计算和数据分析基础库,提供了功能强大的多维数组对象ndarray.jupyter notebook快速执行代码的快捷键:鼠标点击选中要指定的代码框,Shift ...

随机推荐

  1. MySQL数据分析-(11)表补充:数据类型

    大家好,我是jacky,很高兴继续跟大家学习<Mysql 数据分析实战系列教程>,上次课程jacky讲解了表层面的增删改查,jacky说最重要的是增,增就是创建表,作为一个严谨的MySQL ...

  2. MySQL数据分析-(5)数据库设计之ER模型

    大家好,我是jacky,很高兴跟大家分享本课时的内容,从本节课开始,就开始了我们第二章的学习,第一章我们抛出了若干问题,从第二章开始往后,都是解决问题的一个过程: 第一章的案例中,我们拿手机销售公司举 ...

  3. 微信小程序之简单记账本开发记录(五)

    样式表和大致布局在昨天已构建好,今天完成页面结构部分 结果如下图所示

  4. HDU 1114 Piggy-Bank ——(完全背包)

    差不多是一个裸的完全背包,只是要求满容量的最小值而已.那么dp值全部初始化为inf,并且初始化一下dp[0]即可.代码如下: #include <stdio.h> #include < ...

  5. GitHub排名TOP30的机器学习开源项目/贪心学院

    对于机器学习者来说,阅读开源代码并基于代码构建自己的项目,是一个非常有效的学习方法.看看以下这些Github上平均star为3558的开源项目,你错了哪些? 1. FastText:快速文本表示和文本 ...

  6. Flume-数据流监控 Ganglia

    Ganglia 由 gmond.gmetad 和 gweb 三部分组成. gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上.使用 ...

  7. Java同步数据结构之ConcurrentLinkedDeque

    前言 由于LinkedBlockingDeque作为双端队列的实现,采用了单锁的保守策略使其不利于多线程并发情况下的使用,故ConcurrentLinkedDeque应运而生,它是一种基于链表的无界的 ...

  8. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_11-freemarker静态化测试-基于模板字符串静态化

    再定义一个测试方法 把拿到的字符串变成模板 加载器设置好了以后, 加一个断点来测试 生成模板文件 上面这种方式很灵活. 最终代码 @Test public void testGenerateHtmlB ...

  9. 游戏数值——LOL篇 以LOL为起点-说游戏数值设计核心思路

      附     文   文档在今年三月份我动笔写了一小部分,但当时思路凌乱,行文梗阻,于是丢在一边构思了半年,现在又回过头来慢慢写,希望能写好写完吧,初衷是希望即时萌新也能看懂,但是好像并不能行——本 ...

  10. 给mysql创建用户

    给mysql 创建用户过程: 1.进入mysql cmd下 2.输入密码:123 3.选择使用的数据库:use myeshop 4.创建新用户grant usage on *.* to 'cctvse ...