numpy数组的创建

导入numpy
import numpy as np
numpy 提供的最重要的数据结构是 ndarray ,它是 python list 的扩展。

一、依据现有数据创建数组

1.通过array()创建

函数定义方法:def array(p_object, dtype=None, copy=True, order='K', subok=False, ndmin=0):

使用:

  • 一维数组:a = np.array([0, 1, 2, 3, 4])
  • 二维数组:b = np.array([[11, 12, 13, 14, 15],  [16, 17, 18, 19, 20]])
  • 三维数组:c = np.array([[(1.5, 2, 3), (4, 5, 6)], [(3, 2, 1), (4, 5, 6)]],[[11, 12, 13, 14, 15],  [16, 17, 18, 19, 20]] )
两个一维之间加“,”,外边加[]。三维在二维中间加“,”,外边加[]

2.通过asarray()创建

  • 函数定义方法:def asarray(a, dtype=None, order=None):

                                     return array(a, dtype, copy=False, order=order)

  • 与array()区别:当数据源是ndarray 时, array() 仍然会 copy 出一个副本,占用新的内存,但不改变 dtype asarray() 不会

3. fromfunction()

  • 函数定义方法:def fromfunction(function, shape, **kwargs):
  • 作用:从函数中创建数组
  • 应用场景:函数绘图用到
  • 例子:def f(x, y):

                     return 10 * x + y

                   x = np.fromfunction(f, ( 5 , 4 ), dtype= int )

二、依据ones和zeros创建数组

应用场景:初始化参数,

1.零数组

1.zeros() 函数:返回给定形状和类型的零数组。

  • 函数:def zeros(shape, dtype=None, order='C'):

2.zeros_like() 函数:返回与给定数组形状和类型相同的零数组。

  • 函数:def zeros_like(a, dtype=None, order='K', subok=True, shape=None):

2.一数组

1.ones() 函数:返回给定形状和类型的1数组。

  • 函数:def ones(shape, dtype=None, order='C'):

2.ones_like() 函数:返回与给定数组形状和类型相同的1数组。

  • 函数:def ones_like(a, dtype=None, order='K', subok=True, shape=None):

3.空数组

注:空数组不是没有数,而是随机数

1.empty() 函数:返回一个空数组,数组元素为随机数。

  • 函数:def empty(shape, dtype=None, order='C'):
  • 例子:
    x = np.empty( 5 )
    print (x)
    # [1.95821574e-306 1.60219035e-306 1.37961506e-306
    # 9.34609790e-307 1.24610383e-306]

2.empty_like 函数:返回与给定数组具有相同形状和类型的新数组。

  • 函数:def empty_like(prototype, dtype=None, order='K', subok=True, shape=None):
  • 例子:
    x = np.array([[ 1 , 2 , 3 ], [ 4 , 5 , 6 ]])
    y = np.empty_like(x)
    print (y)
    # [[ 7209029 6422625 6619244]
    # [ 100 707539280 504]]

4.单位数组

1. eye() :返回一个对角线上为 1 ,其它地方为零的单位数组。
  • 函数:def eye(N, M=None, k=0, dtype=float, order='C'):
  • 例子:
    x = np.eye( 2 , 3 )
    print (x)
    # [[1. 0. 0.]
    # [0. 1. 0.]]
2. identity() :返回一个方的单位数组。
  • 函数:def identity(n, dtype=None):
  • 例子:
    x = np.identity( 4 )
    print (x)
    # [[1. 0. 0. 0.]
    # [0. 1. 0. 0.]
    # [0. 0. 1. 0.]
    # [0. 0. 0. 1.]]

5.对角数组

1.diag() :提取对角线或构造对角数组。

  • 函数:def diag(v, k=0):

6.常数数组

1. full() 函数:返回一个常数数组。
  • def full(shape, fill_value, dtype=None, order='C'):
2. full_like() 函数:返回与给定数组具有相同形状和类型的常数数组。
  • def full_like(a, fill_value, dtype=None, order='K', subok=True, shape=None):

​​​​​​​三、利用数值范围创建数组

1. arange() :返回给定间隔内的均匀间隔的值。
  • 函数:def arange([start,] stop[, step,], dtype=None):
2. linspace() :返回指定间隔内的等间隔数字。
  • 函数:def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0):
3. logspace() :返回数以对数刻度均匀分布。
函数:
  • def logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0):
4. numpy.random.rand() 返回一个由 [0,1) 内的随机数组成的数组。
  • def rand(d0, d1, ..., dn):

四、结构数组的创建

使用参数 dtype 为定义的结构,np.array() 来创建数组

1.利用字典定义结构

例子:

2.利用列表定义结构
五、数组的属性
用来查找numpy数组的某些信息
  • numpy.ndarray.ndim 用于返回数组的维数(轴的个数)也称为秩,一维数组的秩为 1,二维数组的秩为 2,以此类推。
  • numpy.ndarray.shape 表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 ndim 属性()
  • numpy.ndarray.size 数组中所有元素的总量,相当于数组的 shape 中所有元素的乘积,例如矩阵的元素总量为行与列的乘积。
  • numpy.ndarray.dtype ndarray 对象的元素类型。
  • numpy.ndarray.itemsize 以字节的形式返回数组中每一个元素的大小。
函数:
class ndarray ( object ):
shape = property ( lambda self : object (), lambda self , v: None , lambda self : None )
dtype = property ( lambda self : object (), lambda self , v: None , lambda self : None )
size = property ( lambda self : object (), lambda self , v: None , lambda self : None )
ndim = property ( lambda self : object (), lambda self , v: None , lambda self : None )
itemsize = property ( lambda self : object (), lambda self , v: None , lambda self : None )
在 ndarray 中所有元素必须是同一类型,否则会自动向下转换, int->float->str​​​​​​​
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪里摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值