numpypy

A multifunctional mathematical calculation package written in pure Python programming language [Python>=3.4] (It is an alias for PyPyNum)


Keywords
math, ๆ•ฐๅญฆ, mathematics, ๆ•ฐๅญฆ่ฎก็ฎ—, numerical, ๆ•ฐๅ€ผ, computation, ่ฎก็ฎ—, scientific, ็ง‘ๅญฆ, algebra, ไปฃๆ•ฐ, calculus, ๅพฎ็งฏๅˆ†, statistics, ็ปŸ่ฎก, linear-algebra, ็บฟๆ€งไปฃๆ•ฐ, optimization, ไผ˜ๅŒ–, numerical-analysis, ๆ•ฐๅ€ผๅˆ†ๆž, matrix, ็Ÿฉ้˜ต, vector, ๅ‘้‡, tensor, ๅผ ้‡, numerics, ๆ•ฐๅ€ผ่ฎก็ฎ—, library, ๅบ“, tools, ๅทฅๅ…ท, utils, ๅฎž็”จ็จ‹ๅบ, algorithms, ็ฎ—ๆณ•, software, ่ฝฏไปถ, package, ๅŒ…, methods, ๆ–นๆณ•, data-science, ๆ•ฐๆฎ็ง‘ๅญฆ, machine-learning, ๆœบๅ™จๅญฆไน , computational, ่ฎก็ฎ—็š„, operations, ๆ“ไฝœ, functions, ๅ‡ฝๆ•ฐ, processing, ๅค„็†, programming, ็ผ–็จ‹, simulation, ไปฟ็œŸ, visualization, ๅฏ่ง†ๅŒ–, physics, ็‰ฉ็†
License
Other
Install
pip install numpypy==1.11.0

Documentation

PyPyNum

A multifunctional mathematical calculation package written in pure Python programming language [Python>=3.4]

 ________   ___    ___  ________   ___    ___  ________    ___  ___   _____ ______
|\   __  \ |\  \  /  /||\   __  \ |\  \  /  /||\   ___  \ |\  \|\  \ |\   _ \  _   \
\ \  \|\  \\ \  \/  / /\ \  \|\  \\ \  \/  / /\ \  \\ \  \\ \  \\\  \\ \  \\\__\ \  \
 \ \   ____\\ \    / /  \ \   ____\\ \    / /  \ \  \\ \  \\ \  \\\  \\ \  \\|__| \  \
  \ \  \___| \/  /  /    \ \  \___| \/  /  /    \ \  \\ \  \\ \  \\\  \\ \  \    \ \  \
   \ \__\  __/  / /       \ \__\  __/  / /       \ \__\\ \__\\ \_______\\ \__\    \ \__\
    \|__| |\___/ /         \|__| |\___/ /         \|__| \|__| \|_______| \|__|     \|__|
          \|___|/                \|___|/

Downloads Downloads Downloads

PyPIไธŠๆ— ๆณ•ๆ˜พ็คบlogo๏ผŒๅฏไปฅๅœจGiteeๆˆ–่€…GitHubไธญๆŸฅ็œ‹ใ€‚

The logo cannot be displayed on PyPI, it can be viewed in Gitee or GitHub.

ไป‹็ป

Introduction

  • ๅคšๅŠŸ่ƒฝๆ•ฐๅญฆๅบ“๏ผŒ็ฑปไผผไบŽnumpyใ€scipy็ญ‰๏ผŒไธ“ไธบPyPy่งฃ้‡Šๅ™จๅˆถไฝœ๏ผŒไบฆๆ”ฏๆŒๅ…ถไป–็ฑปๅž‹็š„Python่งฃ้‡Šๅ™จ
  • Multi functional math library, similar to numpy, scipy, etc., designed specifically for PyPy interpreters and also supports other types of Python interpreters
  • ไธๅฎšๆœŸๆ›ดๆ–ฐ็‰ˆๆœฌ๏ผŒๅขžๅŠ ๆ›ดๅคšๅฎž็”จๅŠŸ่ƒฝ
  • Update versions periodically to add more practical features
  • ๅฆ‚้œ€่”็ณป๏ผŒ่ฏทๆทปๅŠ QQๅท2261748025 ๏ผˆPy๐™ฟ๐šข๐š๐š‘๐š˜๐š—-ๆฐดๆ™ถๅ…ฐ๏ผ‰
  • If you need to contact, please add QQ number 2261748025 (Py๐™ฟ๐šข๐š๐š‘๐š˜๐š—-ๆฐดๆ™ถๅ…ฐ)

ๅญๆจกๅ—็š„ๅ็งฐไธŽๅŠŸ่ƒฝ็ฎ€ไป‹

Name and Function Introduction of Submodules

ๅญๆจกๅ—ๅ็งฐ Submodule Name ๅŠŸ่ƒฝ็ฎ€ไป‹ Function Introduction
pypynum.Array ๅคš็ปดๆ•ฐ็ป„ Multidimensional array
pypynum.chars ็‰นๆฎŠๆ•ฐๅญฆ็ฌฆๅท Special mathematical symbols
pypynum.cipher ๅŠ ๅฏ†่งฃๅฏ†็ฎ—ๆณ• Encryption and decryption algorithm
pypynum.constants ๆ•ฐๅญฆๅธธๆ•ฐ้›†ๅˆ Set of mathematical constants
pypynum.equations ๆ–น็จ‹ๆฑ‚่งฃ Solving equations
pypynum.errors ๅผ‚ๅธธๅฏน่ฑก Exception object
pypynum.file ๆ–‡ไปถ่ฏปๅ†™ File read and write
pypynum.FourierT ๅ‚…้‡Œๅถๅ˜ๆข Fourier transform
pypynum.Geometry ๅ‡ ไฝ•ๅฝข็Šถ Geometric shape
pypynum.Graph ๅ›พ่ฎบ็ฎ—ๆณ• Graph Theory Algorithm
pypynum.Group ็พค่ฎบ็ฎ—ๆณ• Group Theory Algorithm
pypynum.Logic ้€ป่พ‘็”ต่ทฏ่ฎพ่ฎก Logic circuit design
pypynum.maths ้€š็”จๆ•ฐๅญฆๅ‡ฝๆ•ฐ General mathematical functions
pypynum.Matrix ็Ÿฉ้˜ต่ฟ็ฎ— Matrix operation
pypynum.NeuralN ็ฅž็ป็ฝ‘็ปœ่ฎญ็ปƒ Neural network training
pypynum.numbers ๆ•ฐๅญ—ๅค„็† Number processing
pypynum.plotting ๆ•ฐๆฎๅฏ่ง†ๅŒ– Data visualization
pypynum.polynomial ๅคš้กนๅผ่ฟ็ฎ— Polynomial operation
pypynum.probability ๆฆ‚็Ž‡็ปŸ่ฎก Probability statistics
pypynum.Quaternion ๅ››ๅ…ƒๆ•ฐ่ฟ็ฎ— Quaternion operation
pypynum.random ้šๆœบๆ•ฐ็”Ÿๆˆ Random number generation
pypynum.regression ๅ›žๅฝ’ๅˆ†ๆž Regression analysis
pypynum.sequence ๆ•ฐๅˆ—่ฎก็ฎ— Sequence calculation
pypynum.Symbolics ็ฌฆๅท่ฎก็ฎ— Symbol calculation
pypynum.Tensor ๅผ ้‡่ฟ็ฎ— Tensor operation
pypynum.test ็ฎ€ๆ˜“ๆต‹่ฏ• Easy test
pypynum.this ้กน็›ฎไน‹็ฆ… Zen of Projects
pypynum.tools ่พ…ๅŠฉๅ‡ฝๆ•ฐ Auxiliary functions
pypynum.Tree ๆ ‘ๅฝขๆ•ฐๆฎ็ป“ๆž„ Tree data structure
pypynum.types ็‰นๆฎŠ็ฑปๅž‹ Special types
pypynum.utils ๅฎž็”จๅทฅๅ…ท Utility
pypynum.Vector ๅ‘้‡่ฟ็ฎ— Vector operation

PyPyNum็š„Zen๏ผˆ้ข„่งˆ๏ผ‰

The Zen of PyPyNum (Preview)

    The Zen of PyPyNum, by Shen Jiayi

This is a math package written purely in Python.

Elegant is superior to clunky.
Clarity trumps obscurity.
Straightforwardness is preferred over convolution.
Sophisticated is better than overcomplicated.
Flat structure beats nested hierarchies.
Sparse code wins over bloated ones.
...

Do you want to view all the content?

Enter "from pypynum import this" in your

Python interpreter and run it!
                                        February 27, 2024

ไธŽไธŠไธ€ไธช็‰ˆๆœฌ็›ธๆฏ”ๆ–ฐๅขžๅŠŸ่ƒฝ

New features compared to the previous version

!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=

ไฟฎๅคไบ†ไธ€ไบ›ๅŠŸ่ƒฝ้—ฎ้ข˜

Fixed some functional issues

!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=

่ฟ่กŒ็”จๆ—ถๆต‹่ฏ•

Run Time Test

็Ÿฉ้˜ต็”จๆ—ถๆต‹่ฏ•
Matrix Time Test
NumPy๏ปฟ+๏ปฟCPython๏ปฟ๏ผˆ๏ปฟseconds๏ปฟ๏ผ‰ ๆŽ’ๅ
Ranking
PyPyNum๏ปฟ+๏ปฟPyPy๏ปฟ๏ผˆ๏ปฟseconds๏ปฟ๏ผ‰ ๆŽ’ๅ
Ranking
Mpmath๏ปฟ_๏ปฟ+๏ปฟ_๏ปฟPyPy๏ปฟ_๏ปฟ๏ผˆ๏ปฟ_๏ปฟseconds๏ปฟ_๏ปฟ๏ผ‰ ๆŽ’ๅ
Ranking
SymPy๏ปฟ_๏ปฟ+๏ปฟ_๏ปฟPyPy๏ปฟ_๏ปฟ๏ผˆ๏ปฟ_๏ปฟseconds๏ปฟ_๏ปฟ๏ผ‰ ๆŽ’ๅ
Ranking
ๅˆ›๏ปฟๅปบ๏ปฟไธ€๏ปฟ็™พ๏ปฟ้˜ถ๏ปฟ้š๏ปฟๆœบ๏ปฟๆ•ฐ๏ปฟ็Ÿฉ๏ปฟ้˜ต
Create a hundred order random number matrix
0.000083 1 0.005374 2 0.075253 3 0.230530 4
ๅˆ›ๅปบไธ€ๅƒ้˜ถ้šๆœบๆ•ฐ็Ÿฉ้˜ต
Create a thousand order random number matrix
0.006740 1 0.035666 2 1.200950 3 4.370265 4
ไธ€็™พ้˜ถ็Ÿฉ้˜ต็›ธๅŠ 
Addition of matrices of order one hundred
0.000029 1 0.002163 2 0.045641 4 0.035700 3
ไธ€ๅƒ้˜ถ็Ÿฉ้˜ต็›ธๅŠ 
Adding matrices of order one thousand
0.002647 1 0.019111 2 1.746957 4 0.771542 3
ไธ€็™พ้˜ถ็Ÿฉ้˜ต่กŒๅˆ—ๅผ
Determinant of a hundred order matrix
0.087209 2 0.016331 1 4.354507 3 5.157206 4
ไธ€ๅƒ้˜ถ็Ÿฉ้˜ต่กŒๅˆ—ๅผ
Determinant of a thousand order matrix
0.616113 1 3.509747 2 ้€Ÿๅบฆๆžๆ…ข 3 ๆ— ๆณ•่ฎก็ฎ— 4
ไธ€็™พ้˜ถ็Ÿฉ้˜ตๆฑ‚้€†
Finding the inverse of a hundred order matrix
0.162770 1 31.088849 4 8.162948 2 21.437424 3
ไธ€ๅƒ้˜ถ็Ÿฉ้˜ตๆฑ‚้€†
Finding the inverse of a thousand order matrix
0.598905 1 ้€Ÿๅบฆ่พƒๆ…ข 4 ้€Ÿๅบฆ่พƒๆ…ข 2 ้€Ÿๅบฆ่พƒๆ…ข 3
ๆ•ฐ็ป„่พ“ๅ‡บๆ•ˆๆžœ
Array output effect
[[[[โ€‚-7โ€‚-67]
[-78โ€‚โ€‚29]]

[[-86โ€‚-97]
[โ€‚68โ€‚โ€‚-3]]]


[[[โ€‚11โ€‚โ€‚42]
[โ€‚24โ€‚-65]]

[[-60โ€‚โ€‚72]
[โ€‚73โ€‚โ€‚โ€‚2]]]]
/ [[[[โ€‚37โ€‚โ€‚83]
[โ€‚40โ€‚โ€‚โ€‚2]]

[[โ€‚-5โ€‚-34]
[โ€‚-7โ€‚โ€‚72]]]


[[[โ€‚13โ€‚-64]
[โ€‚โ€‚6โ€‚โ€‚90]]

[[โ€‚68โ€‚โ€‚57]
[โ€‚78โ€‚โ€‚11]]]]
/ [-80.0โ€‚โ€‚โ€‚-8.0โ€‚โ€‚80.0โ€‚โ€‚-88.0]
[-99.0โ€‚โ€‚-43.0โ€‚โ€‚87.0โ€‚โ€‚โ€‚81.0]
[โ€‚20.0โ€‚โ€‚-55.0โ€‚โ€‚98.0โ€‚โ€‚โ€‚โ€‚8.0]
[โ€‚โ€‚8.0โ€‚โ€‚โ€‚44.0โ€‚โ€‚64.0โ€‚โ€‚-35.0]
(ๅชๆ”ฏๆŒ็Ÿฉ้˜ต)
(Only supports matrices)
/ โŽกโŽก16โ€‚โ€‚โ€‚-56โŽคโ€‚โ€‚โŽกโ€‚8โ€‚โ€‚โ€‚-28โŽคโŽค
โŽขโŽขโ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โŽฅโ€‚โ€‚โŽขโ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โŽฅโŽฅ
โŽขโŽฃ-56โ€‚โ€‚56โ€‚โŽฆโ€‚โ€‚โŽฃ-28โ€‚โ€‚28โ€‚โŽฆโŽฅ
โŽขโ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โŽฅ
โŽขโ€‚โŽก-2โ€‚โ€‚7โ€‚โŽคโ€‚โ€‚โ€‚โŽก-18โ€‚โ€‚63โ€‚โŽคโŽฅ
โŽขโ€‚โŽขโ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โŽฅโ€‚โ€‚โ€‚โŽขโ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โ€‚โŽฅโŽฅ
โŽฃโ€‚โŽฃ7โ€‚โ€‚โ€‚-7โŽฆโ€‚โ€‚โ€‚โŽฃ63โ€‚โ€‚โ€‚-63โŽฆโŽฆ
/

ๅŸบๆœฌ็ป“ๆž„

Basic structure

PyPyNum
โ”œโ”€โ”€ Array
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ””โ”€โ”€ Array(object)/__init__(self: Any, data: Any, check: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ array(data: Any) -> Any
โ”‚       โ”œโ”€โ”€ fill(shape: Any, sequence: Any, repeat: Any, pad: Any) -> Any
โ”‚       โ”œโ”€โ”€ function(_array: Any, _function: Any, args: Any) -> Any
โ”‚       โ”œโ”€โ”€ get_shape(data: Any) -> Any
โ”‚       โ”œโ”€โ”€ is_valid_array(_array: Any, _shape: Any) -> Any
โ”‚       โ”œโ”€โ”€ zeros(shape: Any) -> Any
โ”‚       โ””โ”€โ”€ zeros_like(_nested_list: Any) -> Any
โ”œโ”€โ”€ FourierT
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ””โ”€โ”€ FT1D(object)/__init__(self: Any, data: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ Geometry
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ”œโ”€โ”€ Circle(object)/__init__(self: Any, center: typing.Union[list, tuple], radius: typing.Union[int, float]) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Line(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple]) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Point(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Polygon(object)/__init__(self: Any, p: typing.Union[list, tuple]) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Quadrilateral(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple], c: typing.Union[list, tuple], d: typing.Union[list, tuple]) -> Any
โ”‚   โ”‚   โ””โ”€โ”€ Triangle(object)/__init__(self: Any, a: typing.Union[list, tuple], b: typing.Union[list, tuple], c: typing.Union[list, tuple]) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ””โ”€โ”€ distance(g1: Any, g2: Any, error: typing.Union[int, float]) -> float
โ”œโ”€โ”€ Graph
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ”œโ”€โ”€ BaseGraph(object)/__init__(self: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ BaseWeGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ DiGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ UnGraph(pypynum.Graph.BaseGraph)/__init__(self: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ WeDiGraph(pypynum.Graph.BaseWeGraph)/__init__(self: Any) -> Any
โ”‚   โ”‚   โ””โ”€โ”€ WeUnGraph(pypynum.Graph.BaseWeGraph)/__init__(self: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ Group
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ””โ”€โ”€ Group(object)/__init__(self: Any, data: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ add(x: Any, y: Any) -> Any
โ”‚       โ”œโ”€โ”€ divide(x: Any, y: Any) -> Any
โ”‚       โ”œโ”€โ”€ group(data: Any) -> Any
โ”‚       โ”œโ”€โ”€ multiply(x: Any, y: Any) -> Any
โ”‚       โ””โ”€โ”€ subtract(x: Any, y: Any) -> Any
โ”œโ”€โ”€ Logic
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ”œโ”€โ”€ AND(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Basic(object)/__init__(self: Any, label: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Binary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ COMP(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ DFF(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ FullAdder(pypynum.Logic.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ FullSuber(pypynum.Logic.Ternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ HalfAdder(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ HalfSuber(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ JKFF(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, state: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ NAND(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ NOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ NOT(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ OR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Quaternary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ TFF(pypynum.Logic.Unary)/__init__(self: Any, label: Any, pin0: Any, state: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Ternary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ TwoBDiver(pypynum.Logic.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ TwoBMuler(pypynum.Logic.Quaternary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any, pin2: Any, pin3: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ Unary(pypynum.Logic.Basic)/__init__(self: Any, label: Any, pin0: Any) -> Any
โ”‚   โ”‚   โ”œโ”€โ”€ XNOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ”‚   โ””โ”€โ”€ XOR(pypynum.Logic.Binary)/__init__(self: Any, label: Any, pin0: Any, pin1: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ””โ”€โ”€ connector(previous: Any, latter: Any) -> Any
โ”œโ”€โ”€ Matrix
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ””โ”€โ”€ Matrix(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ eigen(matrix: pypynum.Matrix.Matrix) -> tuple
โ”‚       โ”œโ”€โ”€ hessenberg(matrix: pypynum.Matrix.Matrix) -> tuple
โ”‚       โ”œโ”€โ”€ identity(n: int) -> pypynum.Matrix.Matrix
โ”‚       โ”œโ”€โ”€ lu(matrix: pypynum.Matrix.Matrix) -> tuple
โ”‚       โ”œโ”€โ”€ mat(data: Any) -> Any
โ”‚       โ”œโ”€โ”€ qr(matrix: pypynum.Matrix.Matrix) -> tuple
โ”‚       โ”œโ”€โ”€ rotate90(matrix: pypynum.Matrix.Matrix, times: int) -> pypynum.Matrix.Matrix
โ”‚       โ”œโ”€โ”€ same(rows: Any, cols: Any, value: Any) -> Any
โ”‚       โ”œโ”€โ”€ svd(matrix: pypynum.Matrix.Matrix) -> tuple
โ”‚       โ”œโ”€โ”€ tril_indices(n: int, k: int, m: int) -> tuple
โ”‚       โ”œโ”€โ”€ zeros(_dimensions: Any) -> Any
โ”‚       โ””โ”€โ”€ zeros_like(_nested_list: Any) -> Any
โ”œโ”€โ”€ NeuralN
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ””โ”€โ”€ NeuralNetwork(object)/__init__(self: Any, _input: Any, _hidden: Any, _output: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ””โ”€โ”€ neuraln(_input: Any, _hidden: Any, _output: Any) -> Any
โ”œโ”€โ”€ Quaternion
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ”œโ”€โ”€ Euler(object)/__init__(self: Any, y: typing.Union[int, float], p: typing.Union[int, float], r: typing.Union[int, float]) -> Any
โ”‚   โ”‚   โ””โ”€โ”€ Quaternion(object)/__init__(self: Any, w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ change(data: typing.Union[pypynum.Quaternion.Quaternion, pypynum.Matrix.Matrix, pypynum.Quaternion.Euler], to: str) -> typing.Union[pypynum.Quaternion.Quaternion, pypynum.Matrix.Matrix, pypynum.Quaternion.Euler]
โ”‚       โ”œโ”€โ”€ euler(yaw: typing.Union[int, float], pitch: typing.Union[int, float], roll: typing.Union[int, float]) -> pypynum.Quaternion.Euler
โ”‚       โ””โ”€โ”€ quat(w: typing.Union[int, float], x: typing.Union[int, float], y: typing.Union[int, float], z: typing.Union[int, float]) -> pypynum.Quaternion.Quaternion
โ”œโ”€โ”€ Symbolics
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ””โ”€โ”€ parse_expr(expr: str) -> list
โ”œโ”€โ”€ Tensor
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ””โ”€โ”€ Tensor(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ ten(data: list) -> pypynum.Tensor.Tensor
โ”‚       โ”œโ”€โ”€ tensor_and_number(tensor: Any, operator: Any, number: Any) -> Any
โ”‚       โ”œโ”€โ”€ tensorproduct(tensors: pypynum.Tensor.Tensor) -> pypynum.Tensor.Tensor
โ”‚       โ”œโ”€โ”€ zeros(_dimensions: Any) -> Any
โ”‚       โ””โ”€โ”€ zeros_like(_nested_list: Any) -> Any
โ”œโ”€โ”€ Tree
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ”œโ”€โ”€ MultiTree(object)/__init__(self: Any, root: Any) -> Any
โ”‚   โ”‚   โ””โ”€โ”€ MultiTreeNode(object)/__init__(self: Any, data: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ Vector
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ””โ”€โ”€ Vector(pypynum.Array.Array)/__init__(self: Any, data: Any, check: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ same(length: Any, value: Any) -> Any
โ”‚       โ”œโ”€โ”€ vec(data: Any) -> Any
โ”‚       โ”œโ”€โ”€ zeros(_dimensions: Any) -> Any
โ”‚       โ””โ”€โ”€ zeros_like(_nested_list: Any) -> Any
โ”œโ”€โ”€ chars
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ cipher
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ atbash(text: str) -> str
โ”‚       โ”œโ”€โ”€ base_64(text: str, decrypt: bool) -> str
โ”‚       โ”œโ”€โ”€ caesar(text: str, shift: int, decrypt: bool) -> str
โ”‚       โ”œโ”€โ”€ hill256(text: bytes, key: list, decrypt: bool) -> bytes
โ”‚       โ”œโ”€โ”€ ksa(key: bytes) -> list
โ”‚       โ”œโ”€โ”€ morse(text: str, decrypt: bool) -> str
โ”‚       โ”œโ”€โ”€ playfair(text: str, key: str, decrypt: bool) -> str
โ”‚       โ”œโ”€โ”€ prga(s: list) -> Any
โ”‚       โ”œโ”€โ”€ rc4(text: bytes, key: bytes) -> bytes
โ”‚       โ”œโ”€โ”€ rot13(text: str) -> str
โ”‚       โ”œโ”€โ”€ substitution(text: str, sub_map: dict, decrypt: bool) -> str
โ”‚       โ””โ”€โ”€ vigenere(text: str, key: str, decrypt: bool) -> str
โ”œโ”€โ”€ constants
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ equations
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ linear_equation(left: list, right: list) -> list
โ”‚       โ””โ”€โ”€ polynomial_equation(coefficients: list) -> list
โ”œโ”€โ”€ errors
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ file
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ read(file: str) -> list
โ”‚       โ””โ”€โ”€ write(file: str, cls: object) -> Any
โ”œโ”€โ”€ maths
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ arrangement(n: int, r: int) -> int
โ”‚       โ”œโ”€โ”€ combination(n: int, r: int) -> int
โ”‚       โ”œโ”€โ”€ acos(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ acosh(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ acot(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ acoth(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ acsc(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ acsch(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ arrangement(n: int, r: int) -> int
โ”‚       โ”œโ”€โ”€ asec(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ asech(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ asin(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ asinh(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ atan(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ atanh(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ average(data: Any, weights: Any, expected: Any) -> Any
โ”‚       โ”œโ”€โ”€ beta(p: typing.Union[int, float], q: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ central_moment(data: typing.Union[list, tuple], order: int) -> float
โ”‚       โ”œโ”€โ”€ coeff_det(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ combination(n: int, r: int) -> int
โ”‚       โ”œโ”€โ”€ corr_coeff(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ cos(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ cosh(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ cot(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ coth(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ cov(x: typing.Union[list, tuple], y: typing.Union[list, tuple], dof: int) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ crt(n: typing.Union[list, tuple], a: typing.Union[list, tuple]) -> int
โ”‚       โ”œโ”€โ”€ csc(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ csch(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ cumprod(lst: typing.Union[list, tuple]) -> list
โ”‚       โ”œโ”€โ”€ cumsum(lst: typing.Union[list, tuple]) -> list
โ”‚       โ”œโ”€โ”€ definite_integral(f: Any, x_start: typing.Union[int, float], x_end: typing.Union[int, float], n: int, args: Any, kwargs: Any) -> float
โ”‚       โ”œโ”€โ”€ derivative(f: Any, x: typing.Union[int, float], h: typing.Union[int, float], args: Any, kwargs: Any) -> float
โ”‚       โ”œโ”€โ”€ erf(x: typing.Union[int, float]) -> float
โ”‚       โ”œโ”€โ”€ exgcd(a: int, b: int) -> tuple
โ”‚       โ”œโ”€โ”€ exp(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ factorial(n: int) -> int
โ”‚       โ”œโ”€โ”€ freq(data: typing.Union[list, tuple]) -> dict
โ”‚       โ”œโ”€โ”€ gamma(alpha: typing.Union[int, float]) -> float
โ”‚       โ”œโ”€โ”€ gaussian(x: typing.Union[int, float], _mu: typing.Union[int, float], _sigma: typing.Union[int, float]) -> float
โ”‚       โ”œโ”€โ”€ gcd(args: int) -> int
โ”‚       โ”œโ”€โ”€ geom_mean(numbers: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ harm_mean(numbers: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ iroot(y: int, n: int) -> int
โ”‚       โ”œโ”€โ”€ is_possibly_square(n: int) -> bool
โ”‚       โ”œโ”€โ”€ is_square(n: int) -> bool
โ”‚       โ”œโ”€โ”€ isqrt(x: int) -> int
โ”‚       โ”œโ”€โ”€ kurt(data: typing.Union[list, tuple]) -> float
โ”‚       โ”œโ”€โ”€ lcm(args: int) -> int
โ”‚       โ”œโ”€โ”€ ln(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ mean(numbers: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ median(numbers: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ mod_order(a: int, n: int, b: int) -> int
โ”‚       โ”œโ”€โ”€ mode(data: typing.Union[list, tuple]) -> Any
โ”‚       โ”œโ”€โ”€ normalize(data: typing.Union[list, tuple], target: typing.Union[int, float, complex]) -> typing.Union[list, tuple]
โ”‚       โ”œโ”€โ”€ parity(x: int) -> int
โ”‚       โ”œโ”€โ”€ pi(i: int, n: int, f: Any) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ poisson(x: int, _lambda: typing.Union[int, float]) -> float
โ”‚       โ”œโ”€โ”€ primitive_root(a: int, single: bool) -> typing.Union[int, list]
โ”‚       โ”œโ”€โ”€ product(numbers: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ ptp(numbers: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ raw_moment(data: typing.Union[list, tuple], order: int) -> float
โ”‚       โ”œโ”€โ”€ root(x: typing.Union[int, float, complex], y: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ sec(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ sech(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ sigma(i: int, n: int, f: Any) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ sigmoid(x: typing.Union[int, float]) -> float
โ”‚       โ”œโ”€โ”€ sign(x: typing.Union[int, float]) -> int
โ”‚       โ”œโ”€โ”€ sin(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ sinh(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ skew(data: typing.Union[list, tuple]) -> float
โ”‚       โ”œโ”€โ”€ square_mean(numbers: typing.Union[list, tuple]) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ std(numbers: typing.Union[list, tuple], dof: int) -> typing.Union[int, float, complex]
โ”‚       โ”œโ”€โ”€ tan(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ tanh(x: typing.Union[int, float]) -> typing.Union[int, float]
โ”‚       โ”œโ”€โ”€ totient(n: int) -> int
โ”‚       โ”œโ”€โ”€ var(numbers: typing.Union[list, tuple], dof: int) -> typing.Union[int, float, complex]
โ”‚       โ””โ”€โ”€ zeta(alpha: typing.Union[int, float, complex]) -> typing.Union[int, float, complex]
โ”œโ”€โ”€ numbers
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ float2fraction(number: float, mixed: bool, error: float) -> tuple
โ”‚       โ”œโ”€โ”€ int2roman(integer: int, overline: bool) -> str
โ”‚       โ”œโ”€โ”€ roman2int(roman_num: str) -> int
โ”‚       โ””โ”€โ”€ str2int(string: str) -> int
โ”œโ”€โ”€ plotting
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ background(right: typing.Union[int, float], left: typing.Union[int, float], top: typing.Union[int, float], bottom: typing.Union[int, float], complexity: typing.Union[int, float], ratio: typing.Union[int, float], string: bool) -> typing.Union[list, str]
โ”‚       โ”œโ”€โ”€ binary(function: Any, right: typing.Union[int, float], left: typing.Union[int, float], top: typing.Union[int, float], bottom: typing.Union[int, float], complexity: typing.Union[int, float], ratio: typing.Union[int, float], error: Any, compare: Any, string: bool, basic: list, character: str, data: bool, coloration: Any) -> typing.Union[list, str]
โ”‚       โ”œโ”€โ”€ c_unary(function: Any, projection: str, right: typing.Union[int, float], left: typing.Union[int, float], top: typing.Union[int, float], bottom: typing.Union[int, float], complexity: typing.Union[int, float], ratio: typing.Union[int, float], string: bool, basic: list, character: str, data: bool, coloration: Any) -> typing.Union[list, str]
โ”‚       โ”œโ”€โ”€ change(data: typing.Union[list, str]) -> typing.Union[list, str]
โ”‚       โ”œโ”€โ”€ color(text: str, rgb: typing.Union[list, tuple]) -> str
โ”‚       โ””โ”€โ”€ unary(function: Any, right: typing.Union[int, float], left: typing.Union[int, float], top: typing.Union[int, float], bottom: typing.Union[int, float], complexity: typing.Union[int, float], ratio: typing.Union[int, float], string: bool, basic: list, character: str, data: bool, coloration: Any) -> typing.Union[list, str]
โ”œโ”€โ”€ polynomial
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ”‚   โ””โ”€โ”€ Polynomial(object)/__init__(self: Any, terms: Any) -> Any
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ””โ”€โ”€ poly(terms: Any) -> Any
โ”œโ”€โ”€ probability
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ binomial(sample_size: int, successes: int, success_probability: typing.Union[int, float]) -> float
โ”‚       โ”œโ”€โ”€ chi2_cont(contingency: list, calc_p: bool, corr: bool) -> tuple
โ”‚       โ”œโ”€โ”€ chi2_pdf(x: typing.Union[int, float], k: typing.Union[int, float]) -> float
โ”‚       โ””โ”€โ”€ hypergeometric(total_items: int, success_items: int, sample_size: int, successes_in_sample: int) -> float
โ”œโ”€โ”€ random
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ choice(seq: typing.Union[list, tuple, str], shape: typing.Union[list, tuple]) -> Any
โ”‚       โ”œโ”€โ”€ gauss(mu: typing.Union[int, float], sigma: typing.Union[int, float], shape: typing.Union[list, tuple]) -> typing.Union[float, list]
โ”‚       โ”œโ”€โ”€ gauss_error(original: typing.Union[list, tuple], mu: typing.Union[int, float], sigma: typing.Union[int, float]) -> list
โ”‚       โ”œโ”€โ”€ rand(shape: typing.Union[list, tuple]) -> typing.Union[float, list]
โ”‚       โ”œโ”€โ”€ randint(a: int, b: int, shape: typing.Union[list, tuple]) -> typing.Union[int, list]
โ”‚       โ””โ”€โ”€ uniform(a: typing.Union[int, float], b: typing.Union[int, float], shape: typing.Union[list, tuple]) -> typing.Union[float, list]
โ”œโ”€โ”€ regression
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ linear_regression(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> list
โ”‚       โ”œโ”€โ”€ parabolic_regression(x: typing.Union[list, tuple], y: typing.Union[list, tuple]) -> list
โ”‚       โ””โ”€โ”€ polynomial_regression(x: typing.Union[list, tuple], y: typing.Union[list, tuple], n: int) -> list
โ”œโ”€โ”€ sequence
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ arithmetic_sequence(a1: typing.Union[int, float], an: typing.Union[int, float], d: typing.Union[int, float], n: typing.Union[int, float], s: typing.Union[int, float]) -> dict
โ”‚       โ”œโ”€โ”€ bernoulli(n: int, single: bool) -> list
โ”‚       โ”œโ”€โ”€ catalan(n: int, single: bool) -> typing.Union[int, list]
โ”‚       โ”œโ”€โ”€ farey(n: int) -> list
โ”‚       โ”œโ”€โ”€ fibonacci(n: int, single: bool) -> typing.Union[int, list]
โ”‚       โ”œโ”€โ”€ geometric_sequence(a1: typing.Union[int, float], an: typing.Union[int, float], r: typing.Union[int, float], n: typing.Union[int, float], s: typing.Union[int, float]) -> dict
โ”‚       โ””โ”€โ”€ recaman(n: int, single: bool) -> typing.Union[int, list]
โ”œโ”€โ”€ test
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ this
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ tools
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ classify(array: typing.Union[list, tuple]) -> dict
โ”‚       โ”œโ”€โ”€ dedup(iterable: typing.Union[list, tuple, str]) -> typing.Union[list, tuple, str]
โ”‚       โ”œโ”€โ”€ frange(start: typing.Union[int, float], stop: typing.Union[int, float], step: float) -> list
โ”‚       โ”œโ”€โ”€ generate_primes(limit: int) -> list
โ”‚       โ”œโ”€โ”€ generate_semiprimes(limit: int) -> list
โ”‚       โ”œโ”€โ”€ geomspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
โ”‚       โ”œโ”€โ”€ interp(data: typing.Union[list, tuple], length: int) -> list
โ”‚       โ”œโ”€โ”€ linspace(start: typing.Union[int, float], stop: typing.Union[int, float], number: int) -> list
โ”‚       โ”œโ”€โ”€ magic_square(n: Any) -> Any
โ”‚       โ”œโ”€โ”€ primality(n: int, iter_num: int) -> bool
โ”‚       โ”œโ”€โ”€ prime_factors(integer: int, dictionary: bool, pollard_rho: bool) -> typing.Union[list, dict]
โ”‚       โ””โ”€โ”€ split(iterable: typing.Union[list, tuple, str], key: typing.Union[list, tuple], retain: bool) -> list
โ”œโ”€โ”€ types
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”œโ”€โ”€ ufuncs
โ”‚   โ”œโ”€โ”€ CLASS
โ”‚   โ””โ”€โ”€ FUNCTION
โ”‚       โ”œโ”€โ”€ add(x: Any, y: Any) -> Any
โ”‚       โ”œโ”€โ”€ divide(x: Any, y: Any) -> Any
โ”‚       โ”œโ”€โ”€ floor_divide(x: Any, y: Any) -> Any
โ”‚       โ”œโ”€โ”€ modulo(x: Any, y: Any) -> Any
โ”‚       โ”œโ”€โ”€ multiply(x: Any, y: Any) -> Any
โ”‚       โ”œโ”€โ”€ power(x: Any, y: Any, m: Any) -> Any
โ”‚       โ””โ”€โ”€ subtract(x: Any, y: Any) -> Any
โ””โ”€โ”€ utils
    โ”œโ”€โ”€ CLASS
    โ”‚   โ”œโ”€โ”€ InfIterator(object)/__init__(self: Any, start: typing.Union[int, float, complex], mode: str, common: typing.Union[int, float, complex]) -> Any
    โ”‚   โ”œโ”€โ”€ LinkedList(object)/__init__(self: Any) -> Any
    โ”‚   โ”œโ”€โ”€ LinkedListNode(object)/__init__(self: Any, value: Any, next_node: Any) -> Any
    โ”‚   โ””โ”€โ”€ OrderedSet(object)/__init__(self: Any, sequence: Any) -> Any
    โ””โ”€โ”€ FUNCTION

ไปฃ็ ๆต‹่ฏ•

Code testing

from pypynum import (Array, Geometry, Logic, Matrix, Quaternion, Symbolics, Tensor, Vector,
                     cipher, constants, equations, maths, plotting, random, regression, tools)

...

print(Array.array())
print(Array.array([1, 2, 3, 4, 5, 6, 7, 8]))
print(Array.array([[1, 2, 3, 4], [5, 6, 7, 8]]))
print(Array.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]))

"""
[]
[1 2 3 4 5 6 7 8]
[[1 2 3 4]
 [5 6 7 8]]
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]
"""

triangle = Geometry.Triangle((0, 0), (2, 2), (3, 0))
print(triangle.perimeter())
print(triangle.area())
print(triangle.centroid())

"""
8.06449510224598
3.0
(1.6666666666666667, 0.6666666666666666)
"""

a, b, c = 1, 1, 1
adder0, adder1 = Logic.HalfAdder("alpha", a, b), Logic.HalfAdder("beta", c, None)
xor0 = Logic.XOR("alpha")
ff0, ff1 = Logic.DFF("alpha"), Logic.DFF("beta")
xor0.set_order0(1)
xor0.set_order1(1)
Logic.connector(adder0, adder1)
Logic.connector(adder0, xor0)
Logic.connector(adder1, xor0)
Logic.connector(adder1, ff0)
Logic.connector(xor0, ff1)
print("sum: {}, carry: {}".format(ff0.out(), ff1.out()))

"""
sum: [1], carry: [1]
"""

m0 = Matrix.mat([[1, 2], [3, 4]])
m1 = Matrix.mat([[5, 6], [7, 8]])
print(m0)
print(m1)
print(m0 + m1)
print(m0 @ m1)
print(m0.inv())
print(m1.rank())

"""
[[1 2]
 [3 4]]
[[5 6]
 [7 8]]
[[ 6  8]
 [10 12]]
[[19 22]
 [43 50]]
[[-2.0  1.0]
 [ 1.5 -0.5]]
2
"""

q0 = Quaternion.quat(1, 2, 3, 4)
q1 = Quaternion.quat(5, 6, 7, 8)
print(q0)
print(q1)
print(q0 + q1)
print(q0 * q1)
print(q0.inverse())
print(q1.conjugate())

"""
(1+2i+3j+4k)
(5+6i+7j+8k)
(6+8i+10j+12k)
(-60+12i+30j+24k)
(0.18257418583505536+-0.3651483716701107i+-0.5477225575051661j+-0.7302967433402214k)
(5+-6i+-7j+-8k)
"""

print(Symbolics.BASIC)
print(Symbolics.ENGLISH)
print(Symbolics.GREEK)
print(Symbolics.parse_expr("-(10+a-(3.14+b0)*(-5))**(-ฮถn1-2.718/mฮฃ99)//9"))

"""
%()*+-./0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
ฮ‘ฮ’ฮ“ฮ”ฮ•ฮ–ฮ—ฮ˜ฮ™ฮšฮ›ฮœฮฮžฮŸฮ ฮกฮฃฮคฮฅฮฆฮงฮจฮฉฮฑฮฒฮณฮดฮตฮถฮทฮธฮนฮบฮปฮผฮฝฮพฮฟฯ€ฯฯƒฯ„ฯ…ฯ†ฯ‡ฯˆฯ‰
[['10', '+', 'a', '-', ['3.14', '+', 'b0'], '*', '-5'], '**', ['-ฮถn1', '-', '2.718', '/', 'mฮฃ99'], '//', '9']
"""

t0 = Tensor.ten([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
t1 = Tensor.ten([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
print(t0)
print(t1)
print(t0 + t1)
print(t0 @ t1)

"""
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]
[[[ 9 10]
  [11 12]]

 [[13 14]
  [15 16]]]
[[[10 12]
  [14 16]]

 [[18 20]
  [22 24]]]
[[[ 31  34]
  [ 71  78]]

 [[155 166]
  [211 226]]]
"""

string = "PyPyNum"
encrypted = cipher.caesar(string, 10)
print(string)
print(encrypted)
print(cipher.caesar(encrypted, 10, decrypt=True))
encrypted = cipher.vigenere(string, "cipher")
print(string)
print(encrypted)
print(cipher.vigenere(encrypted, "cipher", decrypt=True))
encrypted = cipher.morse(string)
print(string)
print(encrypted)
print(cipher.morse(encrypted, decrypt=True))

"""
PyPyNum
ZiZiXew
PyPyNum
PyPyNum
RgEfRlo
PyPyNum
PyPyNum
.--. -.-- .--. -.-- -. ..- --
PYPYNUM
"""

v0 = Vector.vec([1, 2, 3, 4])
v1 = Vector.vec([5, 6, 7, 8])
print(v0)
print(v1)
print(v0 + v1)
print(v0 @ v1)
print(v0.normalize())
print(v1.angles())

"""
[1 2 3 4]
[5 6 7 8]
[ 5 12 21 32]
70
[0.18257418583505536  0.3651483716701107  0.5477225575051661  0.7302967433402214]
[1.1820279130506308, 1.0985826410133916, 1.0114070854293842, 0.9191723423169716]
"""

print(constants.TB)
print(constants.e)
print(constants.h)
print(constants.phi)
print(constants.pi)
print(constants.tera)

"""
1099511627776
2.718281828459045
6.62607015e-34
1.618033988749895
3.141592653589793
1000000000000
"""

p = [1, -2, -3, 4]
m = [
    [
        [1, 2, 3],
        [6, 10, 12],
        [7, 16, 9]
    ],
    [-1, -2, -3]
]
print(equations.polynomial_equation(p))
print(equations.linear_equation(*m))

"""
[[(-1.5615528128088307-6.5209667308287455e-24j)                                             0                                             0]
 [                                            0   (2.5615528128088294+4.456233626665941e-24j)                                             0]
 [                                            0                                             0   (1.0000000000000007+3.241554513744382e-25j)]]
[ 1.6666666666666667 -0.6666666666666666 -0.4444444444444444]
"""

print(maths.cot(constants.pi / 3))
print(maths.gamma(1.5))
print(maths.pi(1, 10, lambda x: x ** 2))
print(maths.product([2, 3, 5, 7, 11, 13, 17, 19, 23, 29]))
print(maths.sigma(1, 10, lambda x: x ** 2))
print(maths.var([2, 3, 5, 7, 11, 13, 17, 19, 23, 29]))

"""
0.577350269189626
0.886226925452758
13168189440000
6469693230
385
73.29
"""

plt = plotting.unary(lambda x: x ** 2, top=10, bottom=0, character="+")
print(plt)
print(plotting.binary(lambda x, y: x ** 2 + y ** 2 - 10, right=10, left=0, compare="<=", basic=plotting.change(plt)))
print(plotting.c_unary(lambda x: x ** x, right=2, left=-2, top=2, bottom=-2, complexity=20, character="-"))

"""
  1.00e+01|         +                               +         
          |                                                   
          |          +                             +          
          |                                                   
          |           +                           +           
          |            +                         +            
          |                                                   
          |             +                       +             
  5.00e+00|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
          |              +                     +              
          |               +                   +               
          |                +                 +                
          |                 +               +                 
          |                  +             +                  
          |                   +           +                   
          |                    +         +                    
          |                     +++   +++                     
  0.00e+00|________________________+++________________________
           -5.00e+00             0.00e+00             5.00e+00
  1.00e+01|         +                               +         
          |                                                   
          |          +                             +          
          |                                                   
          |.........  +                           +           
          |.............                         +            
          |..............                                     
          |................                     +             
  5.00e+00|................_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
          |................                    +              
          |................                   +               
          |..............  +                 +                
          |.............    +               +                 
          |.........         +             +                  
          |                   +           +                   
          |                    +         +                    
          |                     +++   +++                     
  0.00e+00|________________________+++________________________
           -5.00e+00             0.00e+00             5.00e+00
  2.00e+00|           -                 -           -          -          -            -    
          |               -  -            -          -         -         -           -      
          |                     -           -         -        -        -          -        
          |-                       -          -       -       -        -         -          
          |     -   -                - -       --      -      -       -        -            
          |            -  -              -       -      -     -      -       -             -
          |                  -  - -       - --  - ---  -- -  --     -     - -         - -   
          |                         - -   -  --    --    -   -  - --     -       - -        
          |  -   -  - - -  -          - -- -   ---  ---  -   -   ---   --     - -           
          |             -    -  - - - --    ----- -- -- --- --  --  ---    --           -  -
          |               - -      -     ------------ ----  - --  -- - ---       - - -      
          |    -  -  -  - -  ----- - -- ----------------------- -- ----  - -- --            
          |   -  -   - -         - ---- ---------------------------------      - - - - -  - 
  0.00e+00|_ _ _ _ _ _ _ _-_-_-_-_---- ------------------------------------_-- _ _ _ _ _ _ _
          |            -  -   - - ----------------------------------------- -- - - - -      
          |   -  --  -  -       -- -  -  --------------------------------- -           -  - 
          |    -          - ---- - - -- --------------------- ----- ----    - -- -          
          |               -         - -- --------- -- -- -  -----  ---  -- -       - -  -   
          |             -  - -  - - - -    ---- --- --- --- --  --  ---     - -            -
          |  -   -  - -               - --     --   --   -   -    --   --       --          
          |                       - -     -  --    -    --   -- -  -     --        -  -     
          |                  -  -         - -   - - -  -- -   -     --      -           -   
          |            -  -            - -      --     --     -      -       - -           -
          |     -   -                -         -       -      -       -          -          
          |-                    -  -          -       -        -       -           -        
          |                  -              -         -        -        -            -      
          |               -               -          -         -         -                  
 -2.00e+00|___________-_________________-___________-_____________________-____________-____
           -2.00e+00                            0.00e+00                            2.00e+00
"""

print(random.gauss(0, 1, [2, 3, 4]))
print(random.rand([2, 3, 4]))
print(random.randint(0, 9, [2, 3, 4]))
print(random.uniform(0, 9, [2, 3, 4]))

"""
[[[0.4604088962341266, -1.7729143777833498, -1.027113249139529, -1.367335972424437], [1.5152952392963814, 0.1143532276512219, -2.2478367353916626, 0.770010737736378], [-0.4126751204277065, -2.5483288418244814, -0.8493985529797649, -0.5563319772201964]], [[1.9010219123281087, 0.44289739103266357, -0.7148439667426828, -0.742966218100922], [0.21210379525283574, 1.5466635593995341, -0.4536304781981763, 0.5978046752778463], [-0.802299453332161, -1.0295309618075863, 0.5960990076298143, -0.7956578324150254]]]
[[[0.6378288221898551, 0.5667742466043126, 0.4656215108828976, 0.15042085420645113], [0.17290475960349394, 0.7286971110875379, 0.645886619551428, 0.6328537921605502], [0.5626377160935252, 0.41015810474249603, 0.9951566294215863, 0.21679108443018347]], [[0.7747392018966252, 0.5885873225687281, 0.4305122635955937, 0.1102178686782671], [0.6823600514076231, 0.919946966200235, 0.9010988477920265, 0.9324975541841414], [0.026520946245817467, 0.7483826867189314, 0.25799134110551736, 0.7231613737350734]]]
[[[5, 5, 4, 2], [2, 0, 9, 6], [9, 2, 0, 0]], [[0, 3, 9, 2], [2, 5, 5, 3], [9, 2, 5, 1]]]
[[[4.661185893580614, 6.263504213542613, 1.5982048879385133, 4.592524740685044], [5.915777961319595, 0.7073727896327806, 2.6233256174392263, 4.980453415047565], [2.257336580759053, 8.299789041235444, 5.839322602213961, 3.1890466264933925]], [[8.498155134210208, 4.722625882838601, 4.4036516933236705, 4.313235000904077], [3.7418534910533126, 2.7783464437089305, 8.884554145257127, 3.860087039759355], [4.430653527343895, 0.9625175276439548, 6.813933725727357, 7.910773669181097]]]
"""

print(regression.linear_regression(list(range(5)), [2, 4, 6, 7, 8]))
print(regression.parabolic_regression(list(range(5)), [2, 4, 6, 7, 8]))
print(regression.polynomial_regression(list(range(5)), [2, 4, 6, 7, 8], 4))

"""
[1.5, 2.4000000000000004]
[-0.21428571428571563, 2.3571428571428625, 1.971428571428569]
[0.08333333334800574, -0.6666666668092494, 1.4166666678382942, 1.1666666648311956, 2.0000000002900613]
"""

print(tools.classify([1, 2.3, 4 + 5j, "string", list, True, 3.14, False, tuple, tools]))
print(tools.dedup(["Python", 6, "NumPy", int, "PyPyNum", 9, "pypynum", "NumPy", 6, True]))
print(tools.frange(0, 3, 0.4))
print(tools.linspace(0, 2.8, 8))

"""
{<class 'int'>: [1], <class 'float'>: [2.3, 3.14], <class 'complex'>: [(4+5j)], <class 'str'>: ['string'], <class 'type'>: [<class 'list'>, <class 'tuple'>], <class 'bool'>: [True, False], <class 'module'>: [<module 'pypynum.tools' from 'F:\\PyPyproject\\PyPyproject1\\pypynum\\tools.py'>]}
['Python', 6, 'NumPy', <class 'int'>, 'PyPyNum', 9, 'pypynum', True]
[0.0, 0.4, 0.8, 1.2000000000000002, 1.6, 2.0, 2.4000000000000004, 2.8000000000000003]
[0.0, 0.39999999999999997, 0.7999999999999999, 1.2, 1.5999999999999999, 1.9999999999999998, 2.4, 2.8]
"""

# ๆ็คบ๏ผš
# 
# ๆต‹่ฏ•ๅทฒๆˆๅŠŸ้€š่ฟ‡ๅนถ็ป“ๆŸใ€‚
# 
# ่ฟ™ไบ›ๆต‹่ฏ•ๅชๆ˜ฏ่ฟ™ไธชๅŒ…ๅŠŸ่ƒฝ็š„ไธ€้ƒจๅˆ†ใ€‚
# 
# ๆ›ดๅคš็š„ๅŠŸ่ƒฝ้œ€่ฆ่‡ชๅทฑๆŽข็ดขๅ’Œๅฐ่ฏ•๏ผ
# 
# Tip:
# 
# The test has been successfully passed and ended.
# 
# These tests are only part of the functionality of this package.
# 
# More features need to be explored and tried by yourself!