NumPy使用

Posted ayanwan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NumPy使用相关的知识,希望对你有一定的参考价值。

NumPy数组的创建

1、创建数组:array

2、制定数组类型:dtype

3、创建特殊数组:

(1)元素全为0:zeros

(2)元素全为1:ones

(3)指定元素范围:arange

(4)线段性元素:linspace


NumPy数组属性

1、NumPy数组下标是从0开始,而且数组中所有元素的类型必须相同。

2、NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2。

3、NumPy数组中重要的属性:

(1)ndim:数组的维数,也就是秩;

(2)shape:数组的形状;

(3)size:数组中元素个数;

(4)dtype:数组中元素的类型。

4、改变数组的形状:reshape


Numpy基本运算

1、加减乘除

2、矩阵相乘dot

3、特殊运算:

(1)sum:求和

(2)min:最小值

(3)max:最大值

(4)mean/average:均值

(5)sort:排序

ps:对行或者列进行操作,需要使用axis,当axis=1时,为行;axis=0时,为列

(6)T/transpose:转秩

(7)clip:制定元素转换为最大值,最小值

(8)flatten():将多维矩阵展开为数列


NumPy索引操作

(1)取元素

(2)切片


NumPy数组合并与分割

1、合并

(1)vstack:上下合并

(2)hstack:左右合并

(3)concatenate:合并多个矩阵

2、分割

(1)split:axis=1纵向等量分割,axis=0横向等量分割

(2)array_split:不等量分割

(3)vsplit/hsplit:与split对应


# -*- coding: utf-8 -*-
"""
Created on Sun Jul  9 11:10:32 2017

@author: tfygg
"""

import numpy as np

print("数组的创建与属性")
a = np.array([[1,2], [2,3]])
print(a)
print(a.ndim)
print(a.shape)
print(a.size)
print(a.dtype)

b = np.ones((2,4))
print(b)
print(b.ndim)
print(b.shape)
print(b.size)
print(b.dtype)
 
c = np.arange(1,10,1) # 1-10 的数据,步长为1
print(c)

d = np.linspace(1,20,20) # 开始端1,结束端20,且分割成20个数据,生成线段
print(d)
print(d.shape)

e = d.reshape(2,10)
print(e)
print(e.shape)


print("数组的基本运算")
a = np.arange(0,20,2).reshape(2,5)
b = np.linspace(1, 10, 10).reshape(2,5)
print('a =', a)
print('b =', b)
print(a-b)
print(a+b)
print(a*b)
print(a*2)
print(a/2)
print(a**2)
print(np.sum(a))
print(np.max(a))
print(np.min(a))
print(np.sum(a,axis=1))#行
print(np.max(a,axis=0))#列
print(np.mean(a,axis=1))
print(a.T)
print(np.clip(a,4,13))
print(np.sort(a))
print(a.flatten())

print("索引操作")
a = np.random.rand(3,4)
print(a)
print(a[1][1])
print(a[1,1])
print(a[1,1:3])
print(a[:,1:3])
print(a[:,1])


print("矩阵合并与分割")
a = np.random.rand(2,4)
b = np.random.rand(1,4)
c = np.random.rand(2,1)
print(a)
print(b)
print(c)
print(np.vstack((a,b)))
print(np.hstack((a,c)))
d = np.concatenate((a,b,b),axis=0)
print(d)

print(np.split(a,2,axis=1))
print(np.split(a,2,axis=0))
print(np.vsplit(a,2))


以上是关于NumPy使用的主要内容,如果未能解决你的问题,请参考以下文章

NumPy之计算两个矩阵的成对平方欧氏距离

NumPy之计算两个矩阵的成对平方欧氏距离

关于idea的目录结构如何变成树状,也就是横向变纵向

python之np.tile()

oracle纵向数据变横向

技巧:Vim 的纵向编辑模式