Numpy(3)

Numpy(3)

一、总体与个体的方差

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
为什么会有方差之后还有标准差,因为为了数据统一,或者说是单位一致。

二、 一些函数

1.randn

randn(d0, d1, …, dn)
用于创建标准的正态分布的数组
标准的正太分布式(0,1)分布,无偏差,非常完美的正太分布。
d0,d1…表示数组的维度

arr=np.random.randn(5)
arr
array([ 0.4289185 , -0.79038682,  0.36198346,  0.5249318 ,  1.8196681 ])
arr=np.random.randn(2,4)
arr
array([[-0.92095412, -0.90581557,  1.34648072, -0.55155396],
       [-1.31549554,  0.77222024,  0.19243332,  0.81816519]])

2.round

np.round(a, decimals=0, out=None)
该函数是对数组的数据进行四舍五入,可以保留任意位的小数,默认是取整

np.round(arr,4)
array([ 0.4289, -0.7904,  0.362 ,  0.5249,  1.8197])

3.sum

np.sum(
a,
axis=None,
dtype=None,
out=None,
keepdims=,
initial=,
)


 1. 一维数组,但是在求和时,不能选择轴,只能从头加到尾
array([ 0.4289185 , -0.79038682,  0.36198346,  0.5249318 ,  1.8196681 ])
np.sum(arr)
2.34511503838318
默认是从头加到尾
2. 二维数组,可以从头加到尾,也可以要求根据那个轴进行相加
arr=np.random.randint(2,10,(2,5))
arr
array([[2, 3, 4, 5, 4],
       [4, 2, 8, 9, 8]])
np.sum(arr)
49
逐行按列
np.sum(arr,0)
array([ 6,  5, 12, 14, 12])
逐列按行
np.sum(arr,1)
array([18, 31])

4.mean

np.mean(a, axis=None, dtype=None, out=None, keepdims=)
求取算数平均值,求解的步骤和sum函数一致

arr
array([[2, 3, 4, 5, 4],
       [4, 2, 8, 9, 8]])
np.mean(arr)
4.9
np.mean(arr,0)
array([3. , 2.5, 6. , 7. , 6. ])
np.mean(arr,1)

5.min/max

np.min(a, axis=None, out=None, keepdims=, initial=)
默认返回所有值中的最大或最小值

arr
array([[2, 3, 4, 5, 4],
       [4, 2, 8, 9, 8]])
np.min(arr)
2
np.max(arr)
9
np.min(arr,0)
array([2, 2, 4, 5, 4])
np.min(arr,1)
array([2, 2])

6.argmin/argmax

np.argmin(a, axis=None, out=None)
返回值是最小值或最大值的所在位置的下标

arr
array([[2, 3, 4, 5, 4],
       [4, 2, 8, 9, 8]])
np.argmin(arr)
0
np.argmin(arr,0)
array([0, 1, 0, 0, 0], dtype=int64)
np.argmin(arr,1)
array([0, 1], dtype=int64)

7.cumsum/cumprod

cumsum用于求解数组的累积和
cumprod用于求解数组的累积积
np.cumsum(a, axis=None, dtype=None, out=None)

np.cumsum(arr)
array([ 2,  5,  9, 14, 18, 22, 24, 32, 41, 49], dtype=int32)
np.cumsum(arr,0)
array([[ 2,  3,  4,  5,  4],
       [ 6,  5, 12, 14, 12]], dtype=int32)
np.cumsum(arr,1)
array([[ 2,  5,  9, 14, 18],
       [ 4,  6, 14, 23, 31]], dtype=int32)

特点是:
相加之后并把累积的和通下一个数替换,达到累加或累积的效果

三、bool数组的运算

1.布尔数组的sum方法

arr
array([[2, 3, 4, 5, 4],
       [4, 2, 8, 9, 8]])
boo_ar=(arr>=3)&(arr<=8)
boo_ar
array([[False,  True,  True,  True,  True],
       [ True, False,  True, False,  True]])
boo_ar.sum(0)
array([1, 1, 2, 1, 2])
boo_ar.sum(1)
array([4, 3])

2.any和all方法

boo_ar.any()
True
boo_ar.all()
False

any用于检验数组中是否由true,如果有,就返回真,否则返回,假
all用于检验数组中是否都由true组成,是就返回真,否则,返回假

3.isnan

np.isnan(*args, **kwargs)
Test element-wise for NaN and return result as a boolean array.

arr
array([[2, 3, 4, 5, 4],
       [4, 2, 8, 9, 8]])
np.isnan(arr)
array([[False, False, False, False, False],
       [False, False, False, False, False]])

注意:
在进行数据处理时,不应破坏原始数据的位置,
例如删除数据时可以从下往上删,这样不会引起数据大幅度的移动
数据分析的意义:如果要进行数据的移动,必须是整行的移动或整列的移动,不应破坏数据的一致性

四、delete

np.delete(arr, obj, axis=None)

arr
array([[2, 3, 4, 5, 4],
       [4, 2, 8, 9, 8]])
np.delete(arr,1)
array([2, 4, 5, 4, 4, 2, 8, 9, 8])
np.delete(arr,[1,3,4])
array([2, 4, 4, 2, 8, 9, 8])
np.delete(arr,1,axis=0)
array([[2, 3, 4, 5, 4]])
np.delete(arr,[1,3],axis=1)
array([[2, 4, 4],
       [4, 8, 8]])

注意:
当不指定围绕哪个轴进行删除时,就从头排到尾,进行指定的删除;
当指定轴时,0表示行,1表示列,按照0/1进行删除

五、数组的排序与去重

1、永久性排序

a.sort(axis=-1, kind=‘quicksort’, order=None)
默认是-1轴进行排序,也就是逐列按行
0轴排序,也就是逐行按列

arr
array([[2, 3, 4, 5, 4],
       [4, 2, 8, 9, 8]])
arr.sort()
arr
array([[2, 3, 4, 4, 5],
       [2, 4, 8, 8, 9]])
arr.sort(0)
arr
array([[2, 3, 4, 4, 5],
       [2, 4, 8, 8, 9]])

2、一次性排序

np.sort(a, axis=-1, kind=‘quicksort’, order=None)
Return a sorted copy of an array.
默认是按行排序

arr=np.random.randint(2,10,(2,4))
arr
array([[3, 3, 4, 3],
       [8, 4, 3, 2]])
np.sort(arr)
array([[3, 3, 3, 4],
       [2, 3, 4, 8]])

注意:
不管是永久性删除,还是一次删除,都是破坏了数据的一致性原则,不是很好的排序

3、去重

np.unique(
ar,
return_index=False,
return_inverse=False,
return_counts=False,
axis=None,
)
Returns the sorted unique elements of an array.

arr=np.array([[1,2,3,1,3],[2,3,3,3,3]])
arr
array([[1, 2, 3, 1, 3],
       [2, 3, 3, 3, 3]])
np.unique(arr,return_counts=True)
(array([1, 2, 3]), array([2, 2, 6], dtype=int64))

六、文件的输入与输出和清洗项目

1.in1d

判断数组1中的元素是否在数组2中
np.in1d(ar1, ar2, assume_unique=False, invert=False)
Returns a boolean array the same length as ar1 that is True
where an element of ar1 is in ar2 and False otherwise.

arr=np.random.randint(2,10,5)
arr_1=np.random.randint(2,10,7)
print(arr)
arr_1
[5 2 9 4 8]
array([9, 7, 4, 5, 2, 4, 7])
np.in1d(arr,arr_1)
array([ True,  True,  True,  True, False])

2、数组可当集合进行操作

1.交集--两个数组所共有的
np.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)
arr=np.random.randint(2,10,5)
arr_1=np.random.randint(2,10,7)
print(arr)
arr_1
[5 2 9 4 8]
array([9, 7, 4, 5, 2, 4, 7])
np.intersect1d(arr,arr_1)
array([2, 4, 5, 9])
2.并集----两个数组的所有数据
np.union1d(arr,arr_1)
array([2, 4, 5, 7, 8, 9])
3.差集-----一个数组相对于另一个数组的差异数据
np.setdiff1d(arr,arr_1)
array([8])
4.异或-----两个数组所共有的差异数据
np.setxor1d(arr,arr_1)
array([7, 8])

3、数据的实时查找

! type 文件的路径
随时可查看文件里的数据,不需要打开文件
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值