# NumPy通用函数、利用NumPy数组进行数据处理

[En]

A function that receives an array parameter in a general function is called a univariate general function.

[En]

By the same token, a binary general function that accepts two array parameters is called a binary general function.

(这是一元函数，而且大部分是比较好理解的函数，就不再多写例子了)

import numpy as np
ret = np.array([1.57])
print(np.ceil(ret))
print(np.floor(ret))


## 1、将条件逻辑转为数组运算

NumPy的where()函数是三元表达式 x if condition else y的矢量化版本。

import numpy as np
arr_x = np.array([1, 5, 7])
arr_y = np.array([2, 6, 8])
arr_con = np.array([True, False, True])
result = np.where(arr_con, arr_x, arr_y)
print(result)
result2 = np.where(arr_x > 3, 1, 0)
print(result2)


## 2、数组统计运算

Numpy数组中与统计运算相关的方法

import numpy as np
arr_x = np.array([1, 4, 5])
print(np.sum(arr_x))
print(np.mean(arr_x))
print(np.argmax(arr_x))
print(np.cumsum(arr_x))

import numpy as np
arr = np.arange(10)
arr = arr.reshape((2, 5))
print(arr)
print(arr.sum(axis=0))
print(arr.sum(axis=1))



2.sun()

sum(a)默认为对输入参数中的所有元素进行求和

import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
print(arr)
print(np.sum(arr))
b = np.arange(12).reshape(2, 6)
print(b)
print(np.sum(b))


sum()输入参数带有axis时，将按照指定axis进行对应求和

import numpy as np
b = np.arange(12).reshape(2, 6)
print(b)
print(np.sum(b))
print(np.sum(b, axis=0))
print(np.sum(b, axis=1))

sum()输入参数axis为多个轴时，则依次按要求在axis上进行多次求和

python
import numpy as np
a = np.arange(12).reshape(2, 2, 3)
print(a)
print(np.sum(a, axis=(0, 1)))
print(np.sum(a, axis=(1, 2)))
print(np.sum(a, axis=(0, 1, 2)))


3.cumsum()

[En]

One dimension, which is the sum before the current column and added to the current column

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7])
print(np.cumsum(a))


import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.cumsum(a, axis=0))
print(np.cumsum(a, axis=1))


import numpy as np
a = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 20, 30]]])
print(np.cumsum(a, axis=0))

print(np.cumsum(a, axis=1))
print(np.cumsum(a, axis=2))


## 3、数组排序(sort()方法没有返回值)

1.如果希望对NumPy数组中的元素进行排序，可以通过sort()方法实现(默认通过最后一个轴排序)

import numpy as np
arr = np.array([[6, 2, 7], [3, 6, 2], [4, 3, 2]])
q = np.sort(arr)
print(q)


2.如果希望对任何一个轴上的元素进行排序，则需要将轴的编号作为sort()方法的参数传入

import numpy as np
arr = np.array([[6, 2, 7], [3, 6, 2], [4, 3, 2]])
q = np.sort(arr, 0)
print(q)


## 4、检索数组元素

1.all()函数用于判断整个数组中的元素的值是否全部满足条件，如果满足条件返回True，否则返回False

import numpy as np
arr = np.array([[1, -2, -7], [-3, 6, 2], [-4, 3, 2]])
q = np.all(arr>0)
print(q)


2.any()函数用于判断整个数组中的元素至少有一个满足条件就返回True，否则就返回False

import numpy as np
arr = np.array([[1, -2, -7], [-3, 6, 2], [-4, 3, 2]])
q = np.any(arr>0)
print(q)


## 5、唯一化及其他集合逻辑

1.针对一维数组，NumPy提供了unique()函数来找出数组中的唯一值，并返回排序后的结果

import numpy as np
arr = np.array([12, 11, 34, 23, 12, 8, 11])
print(np.unique(arr))


2.in1d()函数用于判断数组中的元素是否在另一个数组中存在，该函数返回的是一个布尔型的数组

import numpy as np
arr = np.array([12, 11, 34, 23, 12, 8, 11])
print(np.in1d(arr, [11, 12]))


3.NumPy提供的有关集合的函数还有很多，常见的函数如下表所示：

Original: https://blog.csdn.net/zhangmaoyang66/article/details/123975071
Author: 只会偷懒
Title: NumPy通用函数、利用NumPy数组进行数据处理

## Casbin 简介

Casbin 是一个强大和高效的开放源码访问控制库，它支持各种 访问控制模型 以强制全面执行授权。

pip install casbin


test.py

import casbin
import os

model_dir = os.path.join(os.path.dirname(__file__), 'model.conf')
policy_dir = os.path.join(os.path.dirname(__file__), 'policy.csv')

e = casbin.Enforcer(model_dir,policy_dir)


model.conf文件里是一个ACL (Access Control List, 访问控制列表)的配置文件

[request_definition]
r = sub, obj, act

[policy_definition]
p = sub, obj, act

[policy_effect]
e = some(where (p.eft == allow))

[matchers]
m = r.sub == p.sub && r.obj == p.obj && r.act == p.act


policy.csv文件载入一些策略

p, alice, data1, read
p, bob, data2, write


test.py文件后边我们将进行一些关于权限的测试,下边是整个文件的代码.

import casbin
import os

model_dir = os.path.join(os.path.dirname(__file__), 'model.conf')
policy_dir = os.path.join(os.path.dirname(__file__), 'policy.csv')

e = casbin.Enforcer(model_dir,policy_dir)
sub = "alice"
obj = "data1"

def getEnforce(sub, obj, act):
"""
执行器的封装
"""
if e.enforce(sub, obj, act):

return True
else:

return False

if __name__ == '__main__':
print(getEnforce(sub,obj,act))


## 在数据库里存放策略

pip install casbin_sqlalchemy_adapter



model_dir = os.path.join(os.path.dirname(__file__), 'model.conf')

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DB_DIR = os.path.join(BASE_DIR, 'test.db')

SQLALCHEMY_DATABASE_URL = "sqlite:///" + DB_DIR



Original: https://blog.csdn.net/bosivip/article/details/127558721
Author: J_Sky2022
Title: Python权限管理框架Casbin PyCasbin的简单操作

(0)

### 大家都在看

• #### 昨晚停网后，我写了一段Python代码攻破了隔壁老王家的wifi密码

前言 本文给大家分享的是如何通过 Python 脚本实现 WIFI 密码的暴力攻防，从而实现免费蹭网。 ; 开发工具 Python版本： 3.8 相关模块： pywifi模块 环境…

Python 2023年1月27日
022
• #### django-haystack 对 多对多字段( ManyToManyField )进行索引

我的错误栈如下： values.append(current_object()) TypeError: __call__() missing 1 required keyword-…

Python 2022年12月27日
065
• #### python函数：pd.Series()

形式： pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False…

2022年8月22日
0178

Python 2023年1月3日
037
• #### 基于SqlSugar的开发框架循序渐进介绍（23）– Winform端管理系统中平滑增加对Web API对接的需求

在前面随笔介绍的基于SqlSugar的WInform端管理系统中，数据提供者是直接访问数据库的方式，不过窗体界面调用数据接口获取数据的时候，我们传递的是标准的接口，因此可扩展性比较…

Python 2023年1月28日
028
• #### Python番外篇：Pygame给CSDN博客1周年的我送上一个蛋糕

hello，大家好，我是wangzirui32，今天我们来学习如何用Pygame给自己做一个博客生日贺卡。 前言 今天是我的博客1周年，从2021年1月17日到2022年1月17日…

Python 2023年1月22日
015
• #### 就Python库比如pygame,wx等包安装错我问题解决办法

在我们导入引用一个python游戏时，会出现丢失库的问题，会发现我们pygame，wx等库没有，如下图所示： 我们看看我们的pip库正常不： 这里是正常的，我们用pycharm的提…

Python 2023年1月22日
018
• #### Python 万能代码模版：爬虫代码篇

你好，我是悦创。 很多同学一听到 Python 或编程语言，可能条件反射就会觉得”很难”。但今天的 Python 课程是个例外，因为今天讲的 Python …

2022年8月19日
089
• #### 人工智能ChatGPT被玩坏了

大家好，欢迎来到 Crossin的编程教室 ！ 体验了一下最近火出圈的 ChatGPT，聊聊使用感受。 https://www.bilibili.com/video/BV1684y…

Python 2023年2月1日
035
• #### pygame只能编写游戏_通过游戏来学Python–微信飞机大战4

通过游戏来学Python–微信飞机大战1 通过游戏来学Python–微信飞机大战2 通过游戏来学Python–微信飞机大战3 子弹飞得够久了，就…

Python 2023年1月22日
022
• #### 使用宝塔面板快速部署Django项目

使用宝塔面板快速部署Django项目 1.开放宝塔端口 2.安装宝塔面板 3.浏览器访问Bt-Panel地址，登录宝塔面板后台 4.安装常用的WEB服务组件 5.安装python项…

Python 2022年12月26日
041
• #### python怎么安装pip？

学习过Python的小伙伴都知道，想要安装Python扩展框架就需要使用到pip工具来安装，但有些Python版本并没有内置pip安装工具，今天小千就来教大家如何去检验是否安装和如…

Python 2022年12月27日
031
• #### python –xarray绘图

1 什么是Matplotlib 是专门用于开发2D图表(包括3D图表) 以渐进、交互式方式实现数据可视化 2 为什么要学习Matplotlib 可视化是在整个数据挖掘的关键辅助工具…

Python 2023年1月14日
027
• #### 【图像处理笔记】图像分割之聚类和超像素

【图像处理笔记】总目录 0 引言 大多数分割算法都基于图像灰度值的两个基本性质之一： 不连续性和 相似性。 第一类方法根据灰度的突变（如边缘）将图像分割为多个区域：首先寻找边缘线段…

Python 2023年1月30日
027
• #### Conda环境迁移、备份与恢复

【场景1】Conda环境迁移 在开发机上通过以下命令创建了一个conda环境： conda create -n dev python=3.8 xxxxxx 完成开发后，需要在生产机…

Python 2023年1月16日
054
• #### Python词频分析

Python词频分析 在日常工作或生活中，我们有时会遇到词频分析的场景。如果我们要进行词频分析，那么首先需要对句子中的词进行切分，对句子中的词进行切分，并根据词性进行分类。 [En…

2022年9月3日
0130