NumPy的核心数据结构之一是ndarray,表示一个多维数组,他存储的是单一数据类型。
导入包
import numpy as np
1维数组
list1 = [1, 2, 3, 4, 5, 6] ndarr1 = np.array(list1, dtype=np.float32) print(type(ndarr1), ndarr1) # <class 'numpy.ndarray'> [1. 2. 3. 4. 5. 6.] print(ndarr1.itemsize) # 4, 元素的字节数 print(ndarr1.dtype) # float32, 元素类型 print(ndarr1.size) # 6, 元素个数 print(ndarr1.ndim) # 1, 几维数组 print(ndarr1.shape) # (6,)
2维数组
ndarr1 = np.array([[1, 2, 3], [11, 12, 13]]) # 2行3列2维数组 print(ndarr1.dtype) # int32 print(ndarr1.ndim) # 2, 几维数组 print(ndarr1.shape) # (2, 3) print(ndarr1[1,1:3]) # [12 13], 第2行的第2和第3列 ndarr2 = ndarr1>2 # 元素变成bool类型(是否>2) print(ndarr2.dtype) # bool print(ndarr1[ndarr2]) # [ 3 11 12 13]
empty, arange, once, zero
from collections.abc import Iterable, Iterator a = np.empty((3, 2)) # 3行2列数组, 值随机 print(type(a)) # <class 'numpy.ndarray'> print(a) a = np.eye(3) # 3行3列的单位矩阵 print(type(a), a) # <class 'numpy.ndarray'> print(a) a = np.arange(1, 10, 2) # 1维数组, 参数为start, end, step print(type(a)) # <class 'numpy.ndarray'> print(isinstance(a, Iterable), isinstance(a, Iterator)) # True False print(a) # [1 3 5 7 9] a = np.ones(3) # 1行3列数组1维数组, 值均为1 print(type(a)) # <class 'numpy.ndarray'> print(a) a = np.ones((3, 2)) # 3行2列2维数组, 值均为1 print(type(a)) # <class 'numpy.ndarray'> print(a) a = np.ones((2, 3, 2)) # 3维数组, 第1维2, 第2维3, 第3维2, 值均为1 print(type(a)) # <class 'numpy.ndarray'> print(a) # np.zeros用法同np.ones类似, 只是值均为0
linspace等差数列
logspace等比数列
a = np.linspace(0, 10, 5) # 开始为0, 结束为10, 有5个元素的等差数列 print(a) # [ 0. 2.5 5. 7.5 10. ] a = np.linspace(0, 10, 5, endpoint=False) # 开始为0, 结束为10, 有5个元素的等差数列 print(a) # [0. 2. 4. 6. 8.] a = np.logspace(0, 2, 3) # 开始为10^0, 结束为10^2, 有3个元素的等比数列 print(a) # [ 1. 10. 100.] a = np.logspace(0, 2, 3, base=2) # 开始为2^0, 结束为2^2, 有3个元素的等比数列 print(a) # [1. 2. 4.]
平均值
a = np.array([1, 2, 3, 4]) print(np.average(a)) # 2.5, 平均值 w = np.array([1, 2, 1, 1]) print(np.average(a, weights=w)) # 2.4, 加权平均值(1*1+2*2+3*1+4*1)/(1+2+1+1)=12/5 a = np.array([[1, 2, 3], [11, 12, 13]]) # 2行3列数组 print(np.average(a, axis=0)) # [6. 7. 8.], 行的平均值 print(np.average(a, axis=1)) # [ 2. 12.], 列的平均值
随机
a = np.random.randn(1, 3) # [0, 1)正态分布随机数, 1行3列2维数组 print(a) # [[0.08922697 0.335483 0.43368239]] a = np.random.uniform(1, 3, (2, 3)) # [1, 3)均匀分布随机数(浮点数), 2行3列2维数组 print(a) a = np.random.randint(1, 3, (2, 3)) # [1, 3)均匀分布随机数(整数), 2行3列2维数组 print(a)
rand, random内部都是调用的random_sample
a = np.random.rand(1, 3) # [0, 1)均匀分布随机数, 1行3列2维数组 print(a) # [[0.96676531 0.16221181 0.59009269]] a = np.random.random((1, 3)) # [0, 1)均匀分布随机数, 1行3列2维数组 print(a) # [[0.09063854 0.99784202 0.42242609]] a = np.random.random_sample((1, 3)) # [0, 1)均匀分布随机数, 1行3列2维数组 print(a) # [[0.49189229 0.23482355 0.86513068]]
参考
numpy库:常用基本 - smallpi - 博客园 (cnblogs.com)
Python之Numpy详细教程_python numpy_cs_程序猿的博客-CSDN博客
Python之Numpy基础 - 知乎 (zhihu.com)
Python Numpy库教程(超详细)_代码输入中...的博客-CSDN博客
标签:10,数组,Python,random,用法,np,ndarr1,print,NumPy From: https://www.cnblogs.com/sailJs/p/17694929.html