Python,Numpy库常用汇总

首先是numpy中数组–ndarray类,需要注意的是数组与列表最大的一个不同点是:数组的数据类型基本上都是一个,而列表每个元素的数据类型都可以不同。

ndarray的属性:

ndarray是一个多维数组对象,包括了两部分:实际存储的数据和数组的属性,数组的属性包括了:数组的秩、数组的尺度、数组元素的个数、数组元素类型、每个元素的大小。

属性的名称 作用/意义
a.ndim 数据的维数
a.shape 数组的形状(比如矩阵几行几列)
a.size 元素的个数
a.dtype 元素的种类
a.itemsize 元素的大小(字节)

下列出ndarray中允许的数据类型(numpy自带)
Python,Numpy库常用汇总
Python,Numpy库常用汇总
Python,Numpy库常用汇总

ndarray的创建:

1、通过已有的列表、元组来创建:
Ex:

mlist=[1,1,1,1]
a=np.array(mlist)
print('a',a)
mtuple=[2,2,2,2]
b=np.array(mtuple)
print('b',b)

结果:
a [1 1 1 1]
b [2 2 2 2]
这里a和b都是numpy.ndarray类。
此外array函数可以改变元素的数据类型:array(list/tuple,dtype=…)

2、一些常用创建函数(与matlab类似)
Python,Numpy库常用汇总
Ex:

import numpy as np
a=np.arange(10)
print('a',a)
b=np.ones((3,2))
print('b',b)  # zeros与之类似
c=np.full((3,2),2)
print('c',c)
d=np.eye(3)
print('d',d)

结果:
a [0 1 2 3 4 5 6 7 8 9]
b [[1. 1.]
[1. 1.]
[1. 1.]]
c [[2 2]
[2 2]
[2 2]]
d [[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
3、通过数组创建
Python,Numpy库常用汇总
Ex:

import numpy as np
a = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
b = np.ones_like(a)
c = np.full_like(a, 3)
print('b', b)
print('c', c)

结果:
b [[1 1 1]
[1 1 1]
[1 1 1]]
c [[3 3 3]
[3 3 3]
[3 3 3]]
Python,Numpy库常用汇总
Ex:

import numpy as np
a = np.linspace(1,10,4)
b = np.linspace(1,10,4,endpoint = False)
c = np.concatenate((a,b))
print('a', a)
print('b', b)
print('c', c)`

结果:
a [ 1. 4. 7. 10.]
b [1. 3.25 5.5 7.75]
c [ 1. 4. 7. 10. 1. 3.25 5.5 7.75]
:linspace(a,b,c)的作用是将(a,b)区间分成c-1份,数组内为c个边界点,如果加入endpoint=False则不包括b点 将区间c等分,数组内为前c个点
4、重组数组:
Python,Numpy库常用汇总
Ex:

import numpy as np
a = np.ones((2, 3, 4))
print('a', a)
b = a.reshape((3, 8))
print('b', b)
print('a', a)
a.resize((3, 8))
print('a', a)
e = a.flatten()
print('e', e)

结果:
a [[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]

[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]]
b [[1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1.]]
a [[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]

[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]]
a [[1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1.]]
e [1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
:reshape返回的是一个重组后的数组,而resize则是将原数组进行重组,返回值为None;
5、转化数据类型:atype函数
Ex:

import numpy as np
a = np.ones((2, 3, 4),dtype = int)
print('a', a)
b = a.astype(dtype = float)
print('b', b)

结果:
a [[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]

[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]]
b [[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]

[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]]

1、如果dtype选择与原有的形式相同,则相当于进行了一次拷贝。
2、这里dtype选择的类型直接为int和float,但具体是多少位的由程序“自己选择”。

上一篇:JavaScript函数


下一篇:逆变协变的再理解