array1
=
np
.
array
(
[
[
1
,
2
,
3
]
,
[
4
,
5
,
6
]
]
)
array2
=
np
.
array
(
[
[
1
,
1
,
2
]
,
[
2
,
3
,
3
]
]
)
print
(
array1
+
array2
)
print
(
array1
+
3
)
print
(
array1
**
array2
)
print
(
array1
<
4
)
print
(
np
.
min
(
array1
)
)
print
(
np
.
max
(
array1
)
)
print
(
np
.
sum
(
array1
)
)
print
(
np
.
sum
(
array1
,
axis
=
0
)
)
print
(
np
.
argmin
(
array1
)
)
print
(
np
.
argmax
(
array1
)
)
print
(
np
.
mean
(
array1
)
)
print
(
np
.
median
(
array1
)
)
print
(
np
.
sqrt
(
array1
)
)
print
(
np
.
sort
(
array1
)
)
print
(
np
.
clip
(
array1
,
3
,
5
)
)
array3
=
np
.
array
(
[
[
1
,
2
,
3
]
,
[
1
,
3
,
3
]
,
[
1
,
4
,
3
]
]
)
print
(
np
.
dot
(
array1
,
array3
)
)
print
(
array1
.
dot
(
array3
)
)
print
(
array1
.
T
)
print
(
np
.
random
.
random
(
(
2
,
3
)
)
)
print
(
np
.
random
.
normal
(
size
=
(
2
,
3
)
)
)
print
(
np
.
random
.
randint
(
0
,
10
,
size
=
(
2
,
3
)
)
)
import numpy as nparray1 = np.array([[1, 2, 3], [4, 5, 6]])array2 = np.array([[1, 1, 2], [2, 3, 3]])print(array1 + array2) # 加法,按位相加,加减(-)乘(*)除(/)、取余(%)都是按位计...
python
的
numpy
库提供
矩阵运算
的功能,因此我们在需要
矩阵运算
的时候,需要导入
numpy
的包。1.
numpy
的导入和使用from
numpy
import *;#导入
numpy
的库函数
import
numpy
as np; #这个方式使用
numpy
的函数时,需要以np.开头。2.
矩阵
的创建由一维或二维数据创建
矩阵
from
numpy
import *;
a1=array([1,2,3]);
Preface在相关聚类算法的实现过程中,用
python
语言实现,会经常出现array和matrix的混淆,这里做个总结。array数组
numpy
中最基本(默认)的类型是array,他的相关操作都是按元素操作的即用作数值计算当中(按元素操作有+,-,,/,*等)。相乘举例: from
numpy
import *
>>> a=array([1,2])
>>> np.random.rand(4,3)
array([[ 0.06679473, 0.71073515, 0.5694172 ],
[ 0.95018143, 0.60161401, 0.8076899 ],
[ 0.40341822, ...
数组元素的比对,我们可以直接使用“==”进行
比较
,比如:
但是当数组元素较多时,查看输出结果便变得很麻烦,这时我们可以使用all()方法,直接比对a
矩阵
和b
矩阵
的所有对应的元素是否相等。
any()方法是查看两
矩阵
是否有一个对应元素相等。
all()操作就是对两个
矩阵
的比对结果再做一次与运算,而any则是做一次或运算
参考:https://blog.csdn.net/qq_28...
Numpy
是对多维数组的运算,默认情况并不运算
矩阵
。如果需要对数组进行
矩阵运算
,
矩阵
是继承自
numpy
数组对象的二维数组对象。
Numpy
中,
矩阵
计算是针对整个
矩阵
中每个元素进行的,与用for循环相比,其在运算速度上更快。
import
numpy
as np
#创建
numpy
矩阵
matr1=np.mat('1 2 3;4 5 6;7 8 9') #使用分号隔开...
协程又叫微线程,相比进程和线程,协程的开销最小
协程是在一个线程中执行多个函数,当一个函数遇到耗时操作(比如说网络IO、文件读写),它会自动切换到其他函数继续执行,之后再切换回来继续执行任务,因为没有切换线程的开销,所以执行效率更高
2.gevent
gevent是一个第三方的库,可以轻松实现协程
pip install gevent
gevent默认是不能识别耗时操作的,比如说遇到time.sleep(0.5)不会自动切换任务,需要用gevent.sleep(0.5)才能让它认为是