【Python数据分析学习笔记-1】 NumPy的使用-ndarray 多维数组

首先先导入numpy 模块

import numpy as np

创建ndarray数组

# 创建ndarray数组

list_1=[1,3,5,7,9]  # 列表
arr_1=np.array(list_1)

tuple_1=(2,4,6,8,10)  # 元组
arr_2=np.array(tuple_1)
print(arr_2.dtype)

list_2=[[1,3,5,7,9],[2,4,6,8,10]]   # 二重列表
arr_3=np.array(list_2)


print(arr_1)
print(arr_2)
print(arr_3.shape)
print(arr_3)

list_3=[1,3,5,7,9.0]
arr_4=np.array(list_3)
print(arr_4.dtype)

运行结果:
在这里插入图片描述

函数名 含义
zeros() 创建指定长度或形状的全0数组
zeros_like() 可以根据传入的数组的长度和形状,创建全为0的数组
ones() 创建指定长度或形状的全1数组
ones_like() 可以根据传入的数组的长度和形状,创建全为1的数组
empty() 创建一个没有具体值的数组
empty_like() 同上
# zeros函数;zeros_like函数 可以根据传入的数组的长度和形状,创建全为0的数组
arr_4=np.zeros(10)
print(arr_4)
print(arr_4.dtype)

arr_4_1=np.array([1,3,5,7,9,2,4,6,8,10])
arr_4_1=arr_4_1.reshape(5,2)
arr_4_2=np.zeros_like(arr_4_1)
print(arr_4_1)
print(arr_4_2)

# ones函数  创建指定长度或形状全为1的数组;ones_like函数 可以根据传入的数组的长度和形状,创建全为1的数组
arr_5=np.ones(10)
print(arr_5)
print(arr_5.dtype)
arr_5_1=np.ones((2,2))
print(arr_5_1)

# empty函数可以创建一个没有具体值的数组;empty_like函数
arr_6=np.empty((4,2)) # 两个参数代表这个数组为四行两列
print(arr_6.dtype)
print(arr_6)
print('\n')
arr_7=np.empty((4,4,2))
print(arr_7)
print('\n')
arr_8=np.empty((4,4,4,2))
print(arr_8)

运行结果:
在这里插入图片描述
在这里插入图片描述
注意:最后面的因为运行结果太长就没有截图了。

# arange函数 用于创建数组
arr_9=np.arange(9)
print(arr_9)

# ndarray对象   数据类型
# 有float、string_ (字符串)、int、complex (复数)、bool(布尔)
# 对于新创建的ndarray对象,可以用astype方法进行改变数据类型

arr_10=np.array([1,3,5,7,9])
arr_10_1=arr_10.astype('float')
arr_10_2=arr_10.astype(np.float)
print(arr_10)
print(arr_10_1)
print(arr_10_2)

arr_11=np.array([1.2,2.3,3.4,4.5,5.6])
arr_11_1=arr_11.astype('int')
print(arr_11)
print(arr_11_1)
# 如果是将浮点型转换成为整型,直接将小数点后的数据去掉

运行结果:
在这里插入图片描述

# 数组变换
# reshape()、ravel()、flatten()
arr_12=np.arange(10)
arr_12_1=arr_12.reshape(2,5)
arr_13=np.array([[1,2,3,4,5],[6,7,8,9,0]])
arr_13_1=arr_13.reshape(2,5)
arr_13_2=arr_13.reshape(2,-1)
arr_13_3=arr_13.ravel()   #数据散开
arr_13_4=arr_13.flatten() #数据扁平
print(arr_12_1)
print(arr_13_1)
print(arr_13_2)
print(arr_13_3)
print(arr_13_4)

运行结果:
在这里插入图片描述

# 数组合并
# vstack() hstack()
arr_14=np.arange(10).reshape(2,5)
arr_15=np.arange(10,20).reshape(2,5)
arr_16=np.concatenate([arr_14,arr_15])  # 默认情况下axis=0
arr_17=np.concatenate([arr_14,arr_15],axis=1)
arr_18=np.vstack([arr_14,arr_15])
arr_19=np.hstack([arr_14,arr_15])
print(arr_16)
print(arr_17)
print(arr_18)
print(arr_19)

在这里插入图片描述

# 数组拆分
# 可以通过split()方法将数组拆分成多个数组
arr_20=np.arange(16).reshape((8,2))
print(np.split(arr_20,[3,6]))

运行结果:
在这里插入图片描述

# 数组转置和轴变化

arr_21=np.arange(10).reshape(2,5)
arr_22=arr_21.transpose([1,0])
arr_23=arr_21.T
print(arr_21)
print(arr_22)
print(arr_23)

arr_24=np.arange(20).reshape((2,2,5))
arr_25=arr_24.swapaxes(1,2)
print(arr_24)
print(arr_25)

在这里插入图片描述

函数 使用
rand 产生均匀分布的样本值
randint 给定范围内取随机整数
randn 产生正态分布的样本值
seed 随机数种子
permutation 对一个序列随机排序,不改变原数组
shuffle 对一个序列随机排序,改变原数组
normal(loc,scale,size) 产生具有正态分布的数组,loc为均值,scale表示标准差
poisson(lam,size) 产生具有泊松分布的数组,lam为随机事件发生率
uniform(low,high,size) 产生具有均匀分布的数组,low表示起始值,high表示终止值,size表示形状
# 随机数函数

# randint 给定范围内取随机数
arr_26=np.random.randint(100,200,size=(4,5))
print(arr_26)
# randn函数 产生正态分布的样本值
arr_27=np.random.randn(2,3)
print(arr_27)

# 通过normal函数生成指定均值和标椎差的正态分布的数组
arr_28=np.random.normal(4,5,size=(4,5))
print(arr_28)

在这里插入图片描述

# shuffle函数 对一个序列随机排序,改变原数组
# permutation函数 对一个序列随机排序,不改变原数组

arr_29=np.random.randint(100,150,size=(5,5))
print(arr_29)
np.random.shuffle(arr_29)
print(arr_29)

arr_30=np.random.randint(100,150,size=(4,5))
print(arr_30)
np.random.permutation(arr_30)
print(arr_30)

在这里插入图片描述

发布了51 篇原创文章 · 获赞 299 · 访问量 9199

猜你喜欢

转载自blog.csdn.net/qq_45404396/article/details/104219954
今日推荐