使用ndarray

一、ndarray ( N 维数组对象)是一个快速且灵活的数据集容器, Python 用户可以利用 ndarray对数组的整块数据或选择性数据执行批量操作,它的语法与标量运算一致。

使用列表和元组创建 ndarray

import numpy as np
print(np.array([1,3,5,7]))
print(np.array((2,4,6,8)))

在这里插入图片描述

二、嵌套列表可以转换为一个多维数组,数组元素等长和不等长会得到不同类型的结果。
  • 从下面代码的输出中可以发现,当输入的嵌套列表元素等长时,得到的是一个多维数组(这里是二维);
  • 而元素不等长时,得到的是一个一维数组,内部的子列表是 ndarray 一个维度上的两个元素。
import numpy as np
print(np.array([[1,3,5,7],[2,4,6,8]]))
print(np.array([[1,3,5,7],[2,4,6]]))

在这里插入图片描述

三、创建 ndarray 后,我们可以通过对象属性获取数组的一些信息。

例如,

  • ndim 属性可以获取维度;
  • shape 属性可以获取每个维度具体的长度。
import numpy as np
arr1 = np.array([[1,3,5,7],[2,4,6,8]])
print(arr1.ndim)
print(arr1.shape)

在这里插入图片描述

四、ndarray 除了存储常见的数值类型数据外。还可以存储 Python 其他的常见数据类型,如字符串、逻辑值。

默认情况下, NumPy 的array()函数会自动为输入序列选择一个合适的数据类型,类型值会被保存在一个叫作 dtype 的特殊对象中,它同样可以以属性的形式访间。

import numpy as np
arr1 = np.array([[1,3,5,7],[2,4,6,8]])
print(arr1.dtype)

在这里插入图片描述

五、当输入的数据包含浮点类型时, NumPy 生成的 ndarray 都为浮点数。 ndarny 会强制所有的元素数据类型保持一致。
import numpy as np
arr2 = np.array([[1.0,3,5,7],[2,4.0,6,8]])
print(arr2.dtype)

在这里插入图片描述

六、一般在数据分析操作对象是数值型的数组,为了方便创建一些常用数组,NumPy提供了专门函数。

例如,

  • zeros()函数可以创建全0数组
  • ones()函数可以创建全1数组
  • empty()函数可以创建空数组

使用这些函数时只需要传入一个表示形状的数值或元组。

import numpy as np
print(np.ones(5))
print(np.empty((2,5)))
print(np.zeros((2,3,4)))

在这里插入图片描述
创建数组默认数据类型都是浮点数,这一点可以在创建时指定dtype参数进行更改。

七、如果字符串数组的数据都是数字,我们常常将它转换为数值型,这可以通过ndarray对象的astype()方法实现。
import numpy as np
num_string = np.array(['1.0','2','3.46'],dtype = np.string_)
print(num_string)
print(num_string.astype(float))

111
上例中的 astype()中使用了 float ,它是 Python 内置的数据类型, NumPy 会将其自动映射到等价的 dtype 上,即float64。将整数型数据转换为浮点数,信息不会丢失;但将浮点数转换为整数,小数部分将会被丢失。

下面的例子在上例的基础上构建,除了使用 Python 内置的 foat 、 int 等数据类型,还可以使用 NumPy 提供的更精确的数据类型,如int32、int64、foat32、float64等。

import numpy as np
num_string = np.array(['1.0','2','3.46'],dtype = np.string_)
print(num_string)
print(num_string.astype(float))
print(num_string.astype(float).astype(np.int32))
print(num_string.astype(float).astype(np.int64))

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值