python的Numpy操作

1.数组的生成

import numpy as np

# 生成一般数组
np.array([1, 2, 3])
np.array((1, 2, 3))
np.array({"a": 1, "b": 2})
np.array([[1,2, 3], [1,2, 3]])

# 生成特殊类型的数组
# np.arange(start, stop, step) start 默认为0 , step默认为1
np.arange(1, 15, 3)

# 生成全部为0的数组
np.zeros(15)
np.zeros((2, 3))  # 生成2行 3列的 全部为 0 的数组

# 生成全部为1的数组
np.ones((2, 3))  # 生成2行 3列的 全部为 1 的数组

# 生成一个正方形矩阵
np.eye(3)

# 生成随机数组 0-1 之间
np.random.rand(3)
np.random.rand(2, 3)

# 生成正太分布的数组
np.random.randn(10)

# 生成随机数组 
# np.random.randint(low, hight=None, size=None) low 默认为0 size默认为1, hight左闭右开原则
np.random.randint(1, 5, 3)
np.random.randint(1, 5, [2, 3])

# 从指定的数值或列表 随机选择生成数组
# np.random.choice(a, size=None) a 表示数值或数组, size表示待生成数组的大小, 当a为数值时取range(a)
np.random.choice([1,2 ,3], [2, 3])
np.random.choice(3, 3)

# 将数组打乱
a = np.arange(10)
np.random.shuffle(a)
a

2.数组的基本属性

import numpy as np

arr = np.array([[1, 2], [1, 2], [1, 2]])

# 数组的形状(行数, 列数)
arr.shape

# 数组的大小(共有多少个元素)
arr.size

# 数组的类型
arr.dtype

# 数组的维数
arr.ndim

3.数组的数据选择

3.1 一维数组的选择

import numpy as np

# 一维数组的选取
arr = np.arange(10)

# 按照下标选择
arr[3]

# 从末尾选择
arr[-1]

# 选择区间
arr[3:5]
arr[3:]
arr[:3]
arr[3:-2]

# 按照条件选择
arr[arr>4]

3.2 多维数组的选择

# 多维数组的选择
arr = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]])

# 获取某行
arr[0]

# 获取多行
arr[1:3]
arr[:2]
arr[2:]
arr[2:-1]

# 获取某列
arr[:,0]

# 获取多列
arr[:,0:2]

# 获取行列
arr[1:5, 1:3]

4.数据类型的转换

# 数据类型转换
arr = np.arange(10)
arr.astype(np.float64) 
arr.astype(np.string_)

5.数据的缺失值处理

# 创建含有缺失值 np.nan
arr = np.array([1, 2, np.nan, 4])

# 找到含有缺失值的 位置,返回True
np.isnan(arr)

# 使用True返回的位置 修改为3
arr[np.isnan(arr)] = 3

arr

6.数据的重复值处理

arr = np.array([1, 2, 1])
np.unique(arr)

7.数组重置

# 一维数组
arr = np.arange(10)
arr.reshape(2, 5)
arr.reshape(1, 10)

# 多维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11,12]])
arr.reshape(2, 6)

# 行列转换
arr.T

8.数组合并

arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])

# 横向合并
# 1
np.concatenate([arr1, arr2], axis=1)
# 2
np.hstack([arr1, arr2])
# 3 
np.column_stack([arr1, arr2])

# 竖向合并
# 1
np.concatenate([arr1, arr2], axis=0)
# 2
np.vstack([arr1, arr2])
# 3
np.row_stack([arr1, arr2])

9.数组的统计函数

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

# 1.统计函数
arr.sum()
arr.mean()
arr.min()
arr.max()

# 可以指定行列
arr.mean(axis=1)
arr.sum(axis=0)

10.数据的条件函数

# 2.条件函数
np.where(arr< 5)  # 返回满足条件的arrary
np.where(arr<5,True, False)  # 返回全数组的True, False
np.where(arr<5, '满足', '不满足')

11.数组的集合函数

# 3.集合函数
arr1 = np.arange(3)
arr2 = np.array([1, 2, 3, 4, 5])

# 包含
np.in1d(arr1, arr2)  # 判断数组arr1中包含arr2的哪些值, 返回True, False

# 交集
np.intersect1d(arr1,arr2)  # 返回两个数组的交集

# 并集
np.union1d(arr1, arr2)  # 两个数组的所有元素

# 差集
np.setdiff1d(arr1, arr2)  # 在arr1中存在 在arr2中不存在的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值