zoukankan      html  css  js  c++  java
  • Numpy学习之——数组创建

    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命名,每次使用时便会读取配置文件


  • 相关阅读:
    memcached与redis的一些区别小结
    ubuntu下定时任务
    hdu4135 容斥定理
    hdu1251 统计难题 字典树
    hdu1710 Binary Tree Traversals(二叉树的遍历)
    Codeforces Round #364 (Div. 2) B. Cells Not Under Attack
    KMP算法 hdu4686 Oulipo
    判断字符串是否在字典里
    floyd算法 poj2253
    最短路径dijkstra算法
  • 原文地址:https://www.cnblogs.com/yanshanbei/p/12013783.html
Copyright © 2011-2022 走看看