【数据分析之Numpy基础001】数组创造者秘籍:轻松掌握创建Array,编程新手变高手

1、使用array函数创建

        numpy模块的array函数可以生成多维数组。例如,如果要生成一个二维数组,需要向array函数传递一个列表类型的参数。每个列表元素是一维的ndarray类型数组,作为二维数组的行。

        另外,通过ndarray类的shape属性可以获得数组每一维的元素个数(元组形式),也可以通过shape[n]形式获得每一维的元素个数,其中n是维度,从0开始。

        其语法格式如下:

numpy.array(obj, dtype=None, copy=True, order=None, subok=False, ndmin=0)

其中:

        obj:数组或嵌套的数列

        dtype:数组元素的数据类型,可选

        copy:对象是否需要复制,可选

        order:创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)

        subok:默认返回一个与基类类型一致的数组

        ndmin:指定生成数组的最小维度

        创建一维数组

import numpy as np

one_array = np.array([1, 2, 3, 4, 5])

print(one_array)

print('维度:', one_array.shape)

  

  创建二维数组

two_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

print(two_array )

print('维度:', two_array.shape)

 

       dtype参数的使用

# 生成一个复数的数组

comp_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=complex)

print(comp_array )

        ndmin参数的使用

# 生成一个最小维度为3的数组

three_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9], ndmin=3)

print(three_array)

2、使用arange函数创建

        使用arange函数创建数值范围并返回ndarray对象

        函数语法格式如下:

numpy.arange(start, end, stpe, dtype)

        arange函数与range函数功能类型,只是多了一个dtype参数

        创建一维数组

import numpy as np

arr1 = np.arange(1, 10, dtype=int)

print('arr1:', arr1)

arr2 = np.arange(1, 10, 2, dtype=float)

print('arr2:', arr2)

      

  其实,你可以将arange看作array+range两个函数的综合结构,执行顺序为range—>array,即先生成一个列表,再转成数组

        那么,在使用arange函数创建一个二维数组时,就需要使用到array函数

two_arr = np.array([np.arange(1, 4), [np.arange(4, 7), [np.arange(7, 10)])

print(two_arr)

print('维度:', two_arr.shape)

3、使用random函数创建

        numpy中random函数常用来生成随机数,其包含了很多的常用方法。

函数

说明

seed

确定随机生成器种子

permutation

返回一个序列的随机排列或返回一个随机排列的范围

shuffle

对一个序列随机的排序

choice

随机选择一个数或数组

rand

产生均匀分布的样本值

randint(low, high=None, size)

如果high=None, 则返回一个[0, low)的size大小的数组,如果有high,则返回一个[low, high)的size大小的数组

random(size=None)

返回[0.0, 1.0)范围size大小的随机数

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

返回一个或一组样本, 具有标准正态分布(期望为0,方差为1)。dn表示每个维度

        (1)random.random(size=None)的使用方法

import numpy as np

# 生成一个一维(3,)的随机数组

arr1 = np.random.random(size = 3)

print('arr1:', arr1)

# 生成一个二维(3,5)的随机数组

arr2 = np.random.random(size = (3, 5))

print('arr2:', arr2)

 

       (2)random.randint()的使用方法

import numpy as np

# 生成一个一维(3,)的[0, 6)随机数组

arr1 = np.random.randint(6, size = 3)

print('arr1:', arr1)

# 生成一个一维(3)的[3, 10)随机数组

arr2 = np.random.randint(3, 10, size = 3)

print('arr2:', arr2)

# 生成一个二维(3,5)的[3, 10)随机数组

arr3 = np.random.randint(3, 10, size = (3, 5))

print('arr3:', arr3)

        (3)random.randn()的使用方法

import numpy as np

# 生成一个一维(1,)的呈标准正太分布的随机数组

arr1 = np.random.randn()

print('arr1:', arr1)

# 生成一个二维(3,5)的呈标准正太分布的随机数组

arr2 = np.random.randn(3, 5)

print('arr2:', arr2)

# 生成一个包含两个(3,5)的三维的呈标准正太分布的随机数组

arr3 = np.random.randn(2, 3, 5)

print('arr3:', arr3)

        (4)random.normal()的使用方法

import numpy as np

# 生成一个呈正太分布(高斯分布)loc:期望, scale:方差, size:形状

arr = np.random.normal(loc=1, scale=3, size=(4,5))

print('arr:', arr)

4、其他方式创建

        (1)zeros函数

        创建指定大小的数组,数组元素以0来填充

        其语法格式为:

numpy.zeros(shape, dtype=float, order='C')

例:

import numpy as np

arr1 = np.zeros(7)

print('arr1:', arr1)

arr2 = np.zeros((5,), dtype=int)

print('arr2:', arr2)

arr3 = np.zeros((5,3))

print('arr3:', arr3)

        (2)ones函数

        创建指定形状的数组,数组元素以1来填充

其语法格式为:

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

例:

import numpy as np

arr1 = np.ones(7)

print('arr1:', arr1)

arr2 = np.ones((5,3), dtype=int)

print('arr2:', arr2)

        (3)empty函数

        empty函数用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组,里面元素的值是之前内存的值。

        其语法格式为:

numpy.empty(shape, dtype=float, order='C')

例:

import numpy as np

arr1 = np.empty((5,3), dtype=int)

print(arr1)

        (4)linspace函数

        linspace函数用于创建一个一维数组,数组是一个等差数列构成的。

        其语法格式为:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

其中:

        num:要生成的等步长的样本数量,默认为50

        endpoint:该值为True时,数列中包含stop值,反之不包含,默认是True

        retstep:如果为True时, 生成的数组中会显示间距,反之不显示

例:

import numpy as np

arr1 = np.linspace(2, 20)

print('arr1:', arr1)

arr2 = np.linspace(2, 20, 10)

print('arr2:', arr2)

arr3 = np.linspace(2, 20, 10, endpoint=False)

print('arr3:', arr3)

arr4 = np.linspace(2, 20, 10, retstep=True)

print('arr4:', arr4)

        (5)logspace函数

        logspace函数用于创建一个等比数列

        其语法格式为:

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

其中:

        base:对数log的底数

例:

import numpy as np

arr1 = np.logspace(2, 20, 10, base=2)

print(arr1)

5、ndarray对象

        Numpy最重要的一个特点是其N维数组对象ndarray,它是一系列同类型数据的集合,以0下标为开始的元素索引。

        ndarray对象是用于存放同类型元素的多维数组

        ndarray中的每个元素在内存中都有相同存储大小的区域

ndarray内部由以下内容组成:

        一个指向数据(内存或内存映射文件中的一块数据)的指针。

        数据类型或dtype,描述在数组中固定大小值的格子。

        一个表示数组形状(shape)的元组,表示各维度大小的元组。

        那么,ndarray对象的属性有(也就是数组的属性):

属性

说明

ndarray.ndim

秩,即轴的数量或维度数量

ndarray.shape

数组的维度,对于矩阵,n行m列

ndarray.size

数组元素的总个数,相当于.shape中的n*m的值

ndarray.dtype

ndarray对象的元素类型

ndarray.itemszie

ndarray对象中每个元素的大小,以字节为单位

ndarray.flages

ndarray对象的内存信息

ndarray.real

ndarray元素的实部

ndarray.imag

ndarray元素的虚部

ndarray.data

包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性

        各个属性的使用

import numpy as np

arr1 = np.random.randint(10, size=8)

print(arr1)

arr2 = np.random.randint(10, size=(4,6))

print(arr2)

arr3 = np.random.randn(4, 5, 6)

print(arr3)

print('ndim属性:', arr1.ndim, arr2.ndim, arr3.ndim)

print('shape属性:', arr1.shape, arr2.shape, arr3.shape)

print('dtype属性:', arr1.dtype, arr2.dtype, arr3.dtype)

print('size属性:', arr1.size, arr2.size, arr3.size)

print('itemsize属性:', arr1.itemsize, arr2.itemsize, arr3.itemsize)

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值