ndarray的用法

NumPy中的数据结构

包括ndarray 和matrix,需要引入NumPy。

数组是指 :存储多维相同类型数据的数据结构,用[]表示

创建数组对象
import numpy as np

array1 = np.array([1,2,3,4,5,6,2,1,0])
a2 = np.arange(5)#创建 [0 1 2 3 4] 的一维数组
a3 = np.ones((2,2))#创建 [[1. 1.] [1. 1.]] 两行两列的全1数组
a4 = np.empty((2,2))#创建两行两列的全空数组
a5 = np.random.randn(4,2)#创建4行2列的随机数组
a6 = np.linspace(0,10,3)#创建从0到10随机的数字,包含10的9个元素的数组
ndarray数组查询操作
array2 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
array1[4:]#查询当前元素在数组中以后的元素,如果查询的值数组中没有则为空
array2[1:3,2:4]#1:3表示第1行到第2行,2:4表示第2列到第3列 的切片 左闭右开原则
数组常用属性
#注意必须是矩阵格式或者数组格式
array3 = array1.reshape(3,-1)#改变维度为m行、d列 (-1表示列数自动计算,d= a*b /m )
array4 = array2.reshape(-1,3)#改变维度为d行、m列 (-1表示行数自动计算,d= a*b /m )

array3.shape #查看数据的行数和列数
array3.dtype#查看元素的数据类型
array3.size#查看数组的个数
array3.itemsize#查看数组数据类型字节数
array3.ndim #查看数组维度
数组增加操作
#注意必须保持维度一致
array3 = np.append(array2,[[12,15,17,18]],axis=0)#axis=0 添加一行
array4 = np.append(array2,[[1],[2],[3]],axis=1)#axis=1添加一列
数组删除操作
array3 = array2
print('原始数据\n',array3)
array4= np.delete(array3,1,axis = 0) #axis = 可以不要写
array5= np.delete(array3,(1,2), 0)
array6= np.delete(array3,(1,2), 1)
print('删除行数据\n',array4)
print('删除多行数据\n',array5)
print('删除多列数据\n',array6)

原始数据
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
删除行数据
[[ 1 2 3 4]
[ 9 10 11 12]]
删除多行数据
[[1 2 3 4]]
删除多列数据
[[ 1 4]
[ 5 8]
[ 9 12]]

数组的修改操作
array2[1:2] = 0
print('数组批量赋值\n',array2)
array3 = array2.T #二维数组转置
array3[1][1] = 100
print('修改数值\n',array3)

数组批量赋值
[[ 1 2 3 4]
[ 0 0 0 0]
[ 9 10 11 12]]
修改数值
[[ 1 0 9]
[ 2 100 10]
[ 3 0 11]
[ 4 0 12]]

数组的堆叠
arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
print('纵向堆叠后:\n',np.vstack((arr1,arr2)))
print('横向堆叠后:',np.hstack((arr1,arr2)))

纵向堆叠后:
[[1 2 3]
[4 5 6]]
横向堆叠后: [1 2 3 4 5 6]

数组转换为其它数据结构
arr3 = np.array([[1,2,3,],[4,5,6]])
import pandas as pd
dfarr = pd.DataFrame(arr3)
print('Ndarray转为DataFrame的结果是:\n',dfarr)
arr4 = dfarr.values
print('DataFrame转为Ndarray的结果是:\n',arr4)

Ndarray转为DataFrame的结果是:
0 1 2
0 1 2 3
1 4 5 6
DataFrame转为Ndarray的结果是:
[[1 2 3]
[4 5 6]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值