NumPy ndarray:多维数组对象
NumPy的核心特征之一就是 N-维数组对象——ndarray。
ndarray是Python中的一个快速、灵活的大型数据集容器。数字允许你使用类似于标量的操作语法在整块数据上进行数学计算。
首先要导入NumPy模块
import numpy as np
生成ndarray
生成数组对象最简单的方式就是使用array函数。 array函数接收任意的序列型对象(当然也包括其他的数组),生成一个新的包含传递数据的NumPy数组。
生成一维数组:
data1 = [6,7.5,8,0,1]
arr1 = np.array(data1)
print(arr1)
[6. 7.5 8. 0. 1. ]
生成二维数组:
data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
print(arr2)
print(arr2.ndim)
print(arr2.shape)
[[1 2 3 4]
[5 6 7 8]]
2
(2, 4)
ndim 与 shape
这两个属性都是用来表示数组的。
ndim 用来表示这个数组是几维的
shape 用来表示这是一个几乘几的数组
dtype
除非显式的指定,否则 np.array 会自动推断生成数组的数据类型。 比如你的数组中如果有一个数字是浮点型的话 ,那么这个数据将会被自动推断为float型数组,并且数据类型将会被存储在一个特殊的元数据dtype中。
print(arr1.dtype)
print(arr2.dtype)
float64
int32
numpy 生成数组的函数:
函数名 | 描述
-----------函数名----- | 描述 |
---|---|
array | 将输入数据(可以是列表、元组、数组以及其他序列)转换为ndarray,如不显式得指明数据类型, 将自动推断;默认复制所有的输入数据 |
asarray | 将输入转换为ndarray,但如果输入已经是ndarray则不再复制,他和array的区别在于,当数据源是ndarray对象时,array仍会copy出一个副本,占用新的内存,但是asarray不会 |
arange | Python内建函数range的数组版,返回一个数组例如 [1,2,3,4.....] |
ones | 根据给定形状和数据类型生成全1的数组 |
ones_like | 根据所给的数组生成一个形状一样的全1的数组 |
zeros | 根据给定形状和数据类型生成一个全0数组 |
zeros_like | 根据所给的数组生成一个形状一样的全0数组 |
empty | 根据给定形状生成一个没有初始化数值的空数组 |
empty_like | 根据所给数组生成一个形状一样但是没有初始化数值的空数组 |
full | 根据给定的形状和数组类型生成指定数值的数组 np.full(形状,填充值,dtype=数据类型) |
full_like | 根据所给数组生成一个形状一样但是内容是指定数值的数组,只需把形状参数改成一个ndarray对象就可以了 |
eyes | 生成一个N*N特征矩阵 ,对角线位置全都是1,其余位置都是0,两者的区别在于,前者可以控制矩阵的形状,而后者只能是正方形矩阵 |