import numpy as np
def 数组相加(n):
a=np.arange(1,n+1)**3
b=np.arange(1,n+1)**2
return a+b
print(数组相加(3))
#创建数组
a=np.array(range(1,6))
#np.arange(1,6,3) 最后的数字为步长
b=np.arange(1,6)
print(a)
print("-"*30)
print(b)
print(a.shape)
print(a.ndim)
print(a.size)
print(a.dtype)
#使用ones创建全为1的数组
#一维数组
a=np.ones(3)
print(a)
#二维数组
b=np.ones((3,5))
print("三行五列全为一的数组:",b)
#ones_like创建形状相同的数组
a=[[1,2,3,4],
[5,6,7,8]]
b=np.ones_like(a)
print(b)
#zeros创建全为0的数组
zero=np.zeros(5)
#创建一维5列全为0的数组
print(zero)
zero1=np.zeros((3,2))
print(zero1)
#full创建指定值的数组
f=np.full(5,250)
print(f)
print("-"*30)
#创建二维数组
f1=np.full((3,4),520)
print(f1)
#full_like创建类型相同的指定值数组
a=[[52,55,65,45],
[5,45,55,49],[51,15,25,35],[22,15,85,65],
]
fl=np.full_like(a,520)
print(fl)
#使用random模块
#生成一个随机数
a=np.random.randn()
print("一个随机数",a)
print("-"*40)
#多个随机数
b=np.random.randn(5)
print(b)
print("-"*40)
#随机生成数组
c=np.random.randn(2,3)
print(c)
print("-"*40)
#随机生成多维数组
d=np.random.randn(3,4,3)
print(d)
#给数据指定数据类型
a=np.array(range(2,9),dtype="int32")
print(a)
print(a.dtype)
print(type(a))
b=np.array(range(3,9),dtype="float32")
print(b)
print(b.dtype)
print(type(b))
#多维数组
a=np.array([1,2,3,4,5])
print(a)
print(a.shape)
print(a.ndim)
print(a.size)
print(a.dtype)
print(type(a))
b=np.array(
[ [1,2],[3,4]
]
)
print(b)
print(b.shape)
print(b.ndim)
print(b.size)
print(b.dtype)
print(type(b))
#reshape不修改值,修改形状
import random
a=np.arange(10).reshape(10)
b=a.reshape(2,5)
#不管对方什么阵型,直接转为一维
c=b.flatten()
print(a)
print(b)
print(c)
#计算数组
a=np.arange(12).reshape(3,4)
print(np.shape(a))
b=a+1
print(b)
print(a*2)
a=np.arange(15).reshape(3,5)
b=np.random.randn(1,5).reshape(1,5)
print(a)
print('-'*30)
print(b)
print('-'*30)
print(a+b)
print('-'*30)
print(a-b)
#基础索引和切片
#一维数组
a=np.arange(6)
print(a)
print(a[0])
print(a[2:3])
print(a[-1])
#二维数组
b=np.arange(20).reshape(4,5)
print(b)
print(b[0][0])
#取第二行
print(b[2])
#取第一行,第二列
print(b[1,2])
#除了最后一行,去除余下行
print(b[0:-1])
#取0,1行,2,3列
print(b[0:2,2:4])
#取所有行中的第2列
print(b[:,2])
#切片修改
# b[0:2]=520
# print(b)
b[:1,:2]=250
print(b)
#布尔索引
a=np.arange(10)
print(a)
筛选=a<5
print(a[筛选])
# a[a<=5]=0
# a[a>5]=1
# print(a)
a[a<=5]+=250
print(a)
print('-'*40)
#二维数组
data=np.arange(1,13).reshape(3,4)
print(data)
print('-'*40)
sx=data>6
print(sx)
print('-'*40)
print(data[sx])
print('-'*40)
c=data[:,3]>5
d=data[:,3][c]+250
print(d)
#找出偶数或小于7的
condition=(data%2==0)|(data<7)
print(data[condition])
#神奇索引
a=np.arange(24).reshape(4,6)
print(a)
print(a[[3,2]])#返回第3行,第2行
print('-'*40)
b=np.arange(32).reshape(8,4)
print(b)
print('-'*40)
print(b[[0,5,3],[1,2,3]])#输出第0行,第5行,第3行,第1列,第5列,第6列
print('-'*40)
#取所有行的第1,3列
print(b[:,[1,3]])
运行结果:
D:\Python\p\Scripts\python.exe "D:\Python\python-learning\数据分析(一)\计算数组.py"
[ 2 12 36]
[1 2 3 4 5]
------------------------------
[1 2 3 4 5]
(5,)
1
5
int32
[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 1]]
[0. 0. 0. 0. 0.]
[[0. 0.]
[0. 0.]
[0. 0.]]
[250 250 250 250 250]
------------------------------
[[520 520 520 520]
[520 520 520 520]
[520 520 520 520]]
[[520 520 520 520]
[520 520 520 520]
[520 520 520 520]
[520 520 520 520]]
一个随机数 0.5945631234284523
----------------------------------------
[ 1.97165771 0.97575032 1.13215205 -1.39854416 0.07745663]
----------------------------------------
[[ 0.81900775 0.34432822 -0.34315524]
[-0.45802452 -0.48370465 0.09599291]]
----------------------------------------
[[[ 1.2670115 1.40338605 0.09866375]
[-0.75625225 0.61069217 1.33360167]
[-0.90408869 0.91615536 2.05775181]
[-1.54817782 0.64326842 -0.64436197]]
[[ 2.0422435 -0.37332483 0.05307181]
[-1.54659664 -0.70224743 -0.98218515]
[-1.7245799 -0.22071314 0.72881375]
[ 0.9424487 0.85781549 0.16831111]]
[[-0.74794341 0.87388753 -1.69176107]
[-0.2702907 0.86127632 -0.39412594]
[ 0.10057755 1.31484892 0.45262427]
[ 0.61230205 0.296768 1.85021645]]]
[2 3 4 5 6 7 8]
int32
<class 'numpy.ndarray'>
[3. 4. 5. 6. 7. 8.]
float32
<class 'numpy.ndarray'>
[1 2 3 4 5]
(5,)
1
5
int32
<class 'numpy.ndarray'>
[[1 2]
[3 4]]
(2, 2)
2
4
int32
<class 'numpy.ndarray'>
[0 1 2 3 4 5 6 7 8 9]
[[0 1 2 3 4]
[5 6 7 8 9]]
[0 1 2 3 4 5 6 7 8 9]
(3, 4)
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
[[ 0 2 4 6]
[ 8 10 12 14]
[16 18 20 22]]
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
------------------------------
[[ 1.40223146 1.13958682 0.4920874 -0.96970043 1.62768621]]
------------------------------
[[ 1.40223146 2.13958682 2.4920874 2.03029957 5.62768621]
[ 6.40223146 7.13958682 7.4920874 7.03029957 10.62768621]
[11.40223146 12.13958682 12.4920874 12.03029957 15.62768621]]
------------------------------
[[-1.40223146 -0.13958682 1.5079126 3.96970043 2.37231379]
[ 3.59776854 4.86041318 6.5079126 8.96970043 7.37231379]
[ 8.59776854 9.86041318 11.5079126 13.96970043 12.37231379]]
[0 1 2 3 4 5]
0
[2]
5
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]
0
[10 11 12 13 14]
7
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
[[2 3]
[7 8]]
[ 2 7 12 17]
[[250 250 2 3 4]
[ 5 6 7 8 9]
[ 10 11 12 13 14]
[ 15 16 17 18 19]]
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4]
[250 251 252 253 254 255 6 7 8 9]
----------------------------------------
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
----------------------------------------
[[False False False False]
[False False True True]
[ True True True True]]
----------------------------------------
[ 7 8 9 10 11 12]
----------------------------------------
[258 262]
[ 1 2 3 4 5 6 8 10 12]
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
[[18 19 20 21 22 23]
[12 13 14 15 16 17]]
----------------------------------------
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]
[16 17 18 19]
[20 21 22 23]
[24 25 26 27]
[28 29 30 31]]
----------------------------------------
[ 1 22 15]
----------------------------------------
[[ 1 3]
[ 5 7]
[ 9 11]
[13 15]
[17 19]
[21 23]
[25 27]
[29 31]]
进程已结束,退出代码为 0