科学计算库Numpy --数组(ndarray)

科学计算库Numpy – 数组(ndarray)

学过其他强类型语言的朋友都知道数组是一种数据类型,它里面的元素必须是同一种类型,类似python的列表,但是这种列表只能是同种元素。

创建数组

用法numpy.array(list/tuple)

import numpy as np #重命名numpy为np
arr = np.array([1,2,3,4,5,6])#创建一维数组
print(arr)#[1 2 3 4 5 6]
arr = np.array([[1,2,3],[4,5,6]])#二维数组
print(arr)
'''
[[1 2 3]
 [4 5 6]]
'''

数组的几个属性

#程序上下文接上文
#数组的维数
print(arr.ndim) #2
#数组的形状
print(arr.shape)#(2, 3),返回一个元祖,一维就是(2,),二维(2,3)每个数就是所对应的轴方向的元素个数,一维就是元素数,二维就是行和列....
#元素个数
print(arr.size)#6,所有的元素个数
#元素数据类型
print(arr.dtype)#int64 ,64位整数
#一个元素所占的字节数
print(arr.itemsize)#8, 8个字节,8*8=64位
#数据所在内存缓冲区
print(arr.data)#<memory at 0x7fed6d866e48>

数组的运算

与单个元素进行运算

a = np.array([1,2,3])
print(a+1)#[2 3 4] 每个元素都+1
print(a*2)#[2 4 6] 每个都乘2
#。。。其他运算都是相同的道理

次方运算

print(a**2)#每个元素平方[1 4 9]
print(a**0.5)#二分之一次方[ 1. 1.41421356  1.73205081]

数组运算

b = np.array([1,2,3])
print(a+b)#[2, 4, 6]对应元素相加

#注意shape不同不能相运算(除单个元素这种情况)
c = np.array([1,2])
print(b+c)#报错
'''
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: operands could not be broadcast together with shapes (3,) (2,) 
'''
#单个元素的可以运算
c = array([1,])
print(b+d) #[2, 3, 4]

数组求和

sum([axis])函数,axis为以哪个轴为基准求和,不传入axis则所有元素求和,axis可以传入从0到ndim-1

#一维
a = np.array([1,2,3])
a.sum()#1+2+3
a.sum(axis=0) #1+2+3 一维只有一个轴(可以想象为坐标轴)
'''
<-----按这个方向求和
[1,2,3]
'''
#二维
b = np.array([[1,2],[3,4]])
b.sum()#1+2+3+4
b.sum(axis=0)#[1+3,2+4]
'''
[1,2]↑按这个方向求和,每个行对应位相加
[3,4]|
'''
b.sum(axis=1)#[1+2,3+4]
'''
<---按这个方向求和,每个列对应位求和
[1,2]
[3,4]
'''

数组的其他生成方式

一维数组的生成

参考文档
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

猜你喜欢

转载自blog.csdn.net/a540366413/article/details/70172217