numpy相关

1、np.prod(aaxis=Nonedtype=Noneout=Nonekeepdims=False)

根据给定的轴计算矩阵元素的乘积。

空阵列的产物是元素1:

>>> np.prod([])
1.0

默认情况下,计算所有元素的乘积,即使输入数组是二维的:

In [3]: np.prod([[1.,2.],[3.,4.]])
Out[3]: 24.0

但是我们也可以指定要乘以的轴:

In [4]: np.prod([[1.,2.],[3.,4.]], axis=1)
Out[4]: array([ 2., 12.])

如果x的类型是无符号的,那么输出类型是无符号整数:

>>> x = np.array([1, 2, 3], dtype=np.uint8)
>>> np.prod(x).dtype == np.uint
True

如果x是有符号整数类型,那么输出类型是默认的有符号整数:

>>> x = np.array([1, 2, 3], dtype=np.int8)
>>> np.prod(x).dtype == int
True

2、np.indices 

3、np.mgrid

扫描二维码关注公众号,回复: 3582181 查看本文章
z = np.mgrid[1:5, 1:3]
x, y = z[0], z[1]
print(x)
print(y)

结果:

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

 [1 2]]

首先np.mgrid输出至少是一个三维的向量。

其中的元素,z[0],z[1]都是二维矩阵。

z[0]行数由np.mgrid第一个参数决定,上例为1:5,且为1 2 3 4,列数由1:3决定,利用广播机制填充。

z[1]列数由np.mgrid第二个参数决定,上例为1:3,且为1 2 ,行数由1:5决定,利用广播机制填充。

PS:z = np.mgrid[1:5:0.1, 1:3:0.1]

表示1:5切片间隔为0.1,1:3切片间隔为0.1

z = np.mgrid[1:5:4j, 1:3:3j]

表示1:5切片均匀取数,取4个,1:3切片均匀取数,取3个

实例:生成第一列为0,1;第二列为0,1,2的网格

a =np.mgrid[0:2,0:3]
b = a.T
c = b.reshape(-1,2)
print(a.shape)
print(a)
print(b.shape)
print(b)
print(c)

输出:

(2, 2, 3)
[[[0 0 0]
  [1 1 1]]
 [[0 1 2]
  [0 1 2]]]
(3, 2, 2)
[[[0 0]
  [1 0]]
 [[0 1]
  [1 1]]
 [[0 2]
  [1 2]]]
[[0 0]
 [1 0]
 [0 1]
 [1 1]
 [0 2]
 [1 2]]

猜你喜欢

转载自blog.csdn.net/fireflychh/article/details/82759609
今日推荐