数组的一些常见操作

 

1、如果在数组中出现np.nan或者np.inf, 而又想要把这些值用其他值代替, 该如何操作?

# 用-1代替nan值和inf值
missing_bool = np.isnan(arr2)
arr2[missing_bool] = -1

2、如果要求数组的行或列的最小值,使用np.amin函数

import numpy as np
arr1 = np.arange(1,10).reshape([3, 3])
print(arr1)
print('Column wise min: ', np.amin(arr1, axis=0))
print('Row wise min: ', np.amin(arr1, axis=1))

3、对数组的每个元素进行累加,得到一维数组,一维数组的大小与二维数组相同

print(np.cumsum(arr1))

#> [ 1 3 6 10 15 21 28 36 45]

4、数组的扁平化:flatten()和ravel()

flatten处理后的数组是父数组的引用,因此新数组的任何变化也会改变父数组,因其未用复制的方式构建数组,内存使用效率高,ravel通过复制的方式构建新数组。

b1 = arr1.flatten()
b1[0] = 100
print(arr1)

# [[1 2 3]
[4 5 6]
[7 8 9]]

b2 = arr1.ravel()
b2[0] = 101
print(arr1)

# [[101 2 3]
[ 4 5 6]
[ 7 8 9]]

5、生成序列数sequences,重复数repetitions和随机数random

print(np.arange(10, 0, -1))

# [10 9 8 7 6 5 4 3 2 1]

print(np.linspace(start=1, stop=50, num=10, dtype=int))

# [ 1 6 11 17 22 28 33 39 44 50]

a = [1, 2, 3]

#重复数组a两次
print('Tile: ', np.tile(a, 2))

#重复数组a每项两次
print('Repeat: ', np.repeat(a, 2))

#> ('Tile: ', array([1, 2, 3, 1, 2, 3]))

#> ('Repeat: ', array([1, 1, 2, 2, 3, 3]))

 

#从给定的列表等概率抽样10次
print(np.random.choice(['a', 'e', 'i', 'o', 'u']))

6、如何得到数组独特的项和个数

np.unique函数去除数组中重复的元素,设置return_counts参数为True,得到数组每一个项的个数。

np.random.seed(100)
arr_rand = np.random.randint(0, 10, size=10)
print(arr_rand)
 
uniqs, counts = np.unique(arr_rand, return_counts=True)
print('Unique items: ', uniqs)
print('Counts: ', counts)

[8 8 3 7 7 0 4 2 5 2]
 ('Unique items: ', array([0, 2, 3, 4, 5, 7, 8])) 
('Counts: ', array([1, 2, 1, 1, 1, 2, 2]))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值