Numpy类库常用方法的学习

数据的维度

维度是一组数据的组织形式。数据维度就是在数据之间形成特定关系表达多种含义的一个概念。

一维数据:

一维数据由对等关系的有序或无序数据构成,采用线性方式组织。对应列表、数组和集合等概念。

列表和数组:一组数据的有序结构。

区别:

  列表:数据类型可以不同

  数组:数据类型相同

二维数据:

二维数据由多个一维数据构成,是一维数据的组合形式。

表格是典型的二维数据。其中,表头是二维数据的一部分

多维数据:

多维数据由一维或二维数据在新维度上扩展形成。例如增加时间维度的表格

高维数据:

高维数据仅利用最基本的二元关系展示数据间的复杂结构。利用键值对将数据组织起来的形成的数据关系。

数据维度的Python表示

一维数据:列表(有序)和集合(无序)类型

二维数据:列表类型

多维数据:列表类型

高维数据:字典类型或数据表示格式(JSON、XML、YAML)

1.数组的创建

创建数组对象
import numpy as np

#创建NumPy一维数组
arr1 = np.array([1,2,3,4])
print('一维数组:',arr1)
#创建二维数组
arr2 = np.array([[1,2,3],[4,5,6]])
print('二维数组:',arr2)
#设置最小维度3
arr3 = np.array([1,2,3,4],ndmin=3)
print('三维数组:',arr3)

# 数组的属性
arr1 = np.array([[1,2,3],[4,5,6]])
print('数组维度:',arr1.ndim)
print('数组形状:',arr1.shape)
print('数组的元素总数:',arr1.size)
print('数组元素的数据类型:',arr1.dtype)

2.修改数组的形状

#数组的展平,创建3行4列数组
arr = np.array([[0,1,2,4],[5,6,7,8],[9,10,11,12]])
#展平arr数组,但arr数组不改变
arr_b = arr.ravel()
print(arr,arr_b)

#数组转置和轴对换
#创建数组2行5
arr = np.arange(10).reshape(2,5)
print(arr)
print('转置数组:')
print(arr.T)

#用rollaxis函数
arr = np.arange(8).reshape(2,2,2)
print('原数组:',arr)

# 将轴 2 滚动到轴 0(宽度到深度)
print('调用 rollaxis 函数:')
print(np.rollaxis(arr,2))

3.数组连接

#创建数组arr1
arr1 = np.array([[1,2,3], [4,5,6]])
print('第1个数组arr1:',arr1)
#创建数组arr2
arr2 = np.array([['a',8,9], ['b',11,12]])
print('第2个数组arr2:',arr2)

# 注意两个数组的维度相同
#concatenate函数
print('沿轴0连接两个数组:')
print(np.concatenate((arr1, arr2),axis=0))
print('沿轴 1 连接两个数组:')
print(np.concatenate((arr1, arr2),axis=1))

#stack函数
print('沿轴 0 堆叠两个数组:')
print(np.stack((arr1, arr2),0))

print('沿轴 1 堆叠两个数组:')
print(np.stack((arr1, arr2),1))

4.数组切割

#创建数组arr1
arr1 = np.array([[1,2,3],
                 [4,5,6]])
print('第1个数组arr1:',arr1)
#创建数组arr2
arr2 = np.arange(1,18,2)
print('第2个数组arr2:',arr2)

#使用split函数
print('将arr1数组竖直分割为2个大小相等的子数组:')
print (np.split(arr1,2))


print('将arr1数组水平分割为3个大小相等的子数组:')
print (np.split(arr1,3,1))

print('将arr2数组在一维数组中表明的位置分割:')
print (np.split(arr2, [2, 4 , 8]))

5.数组的添加与删除

#创建数组arr  append
arr = np.array([[1,2,3,4], [5,6,7,8]])
print('第1个数组arr:',arr)
print('原数组:',arr)
print('沿轴 0 添加元素:')
print(np.append(arr,[[9,10,11,12],[11,11,11,11]], axis=0))
print('沿轴 1 添加元素:')
print(np.append(arr,[[9,10],[11,12]], axis=1))
#创建数组arr
arr = np.array([[11,12,13,14], [15,16,17,18]])
print('第1个数组arr:',arr)
print('未传递axis参数。在插入之前输入数组会被展开。')
print(np.insert(arr,4,[9, 10,11,12]))
print('传递了axis参数,会广播值数组来配输入数组。')
print('沿轴 0 广播:')
print(np.insert(arr, 2, [9], axis=0))
'''
[[11 12 13 14]
 [15 16 17 18]
  [9  9  9  9]
 ]
'''
print('沿轴 1 广播:')
print(np.insert(arr, 2, [9], axis=1))
print('沿轴 0 插入:')
print(np.insert(arr, 2, [9,10,11,12], axis=0))
print('沿轴 1 广播:')
print(np.insert(arr, 2, [[9],[10]], axis=1))
print('沿轴 1 插入:')
print(np.insert(arr, 2, [[9,10],[11,12]], axis=1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值