python_numpy库_ndarray的基本使用

1、索引

一维和列表索引的操作一致。

2、 根据索引修改数据

(1)、将第二行全部数字改为0.88

n= np.random.rand(3,4)
print(n)
#将第二行全部数字改为0.88
n[1]=0.88
print(n)

(2)、将第二行最后一个数改为0.88

a= np.random.rand(3,4)
print(a)
#将第二行最后一个数改为0.88
a[1][3]=0.88
print(a)
3、切片
import numpy as np
#列表有逗号间隔
# I = [1,2,3,4,5,6,7,8]
# a = I[2:6]
# b = I[::-1]   #翻转
# print(a)
# print(b)
# #数组没有逗号间隔
# n = np.array(I)
# a = n[2:6]
# print(n)
# print(a)
​
#对于二维数组的行切片
n = np.random.randint(0,10,size=(6,8))
# #取一行
# print(n[0])
# #连续取多行
# print(n[1:4])
# #取不连续多行
# print(n[[1,2,4]])
​
#对于二维数组的列切片
n = np.random.randint(0,10,size=(6,8))
print(n)
#取一列
print(n[:,0])   #取第一列
print(n[1:4,0])  # 取第二到第四行的第一列
#取连续的多列:切片
print(n[:,2:5])  #取第三到第五列的所有行
#取不连续的多列:中括号
print(n[:,[1,3,4]])  #取第二列和第四列和第五列的所有行
4、翻转

(1)、行翻转

n[::-1]

(2)、列翻转

n[:,::-1]
5、变形

使用reshape函数

import numpy as np
​
n = np.arange(1,21)
print(n)
​
#reshape:将数组改变形状  变成二维
a = np.reshape(n,newshape=(4,5))
print(a)
​
#使用-1:表示任意剩余维度长度
e = n.reshape(4,-1)
print(e)
r = n.reshape(-1,2)
print(r)
6、级联(合并)
#级联(合并)
a = np.concatenate((n1,n2))  #上下合并
print(a)
​
l = np.concatenate((n1,n2),axis=0)  #上下合并
print(l)
​
p = np.concatenate((n1,n2),axis=1)  #左右合并
print(p)
​
#左右合并
i = np.hstack((n1,n2))
print(i)
​
#上下合并
u = np.vstack((n1,n2))
print(u)
7、拆分

(1)、np.split()

(2)、np.hsplit()

(3)、np.vsplit()

import numpy as np
​
n = np.random.randint(0,100,size=(4,4))
print(n)
a = np.split(n,4)
print(a)
b = np.hsplit(n,4)
print(b)
#垂直拆分,平均拆成3份
c = np.vsplit(n,4)
print(c)
#按照指定位置拆分
d = np.vsplit(n,(1,2,4))
print(d)
#水平拆分
e = np.hsplit(n,4)
print(e)
print()
#split:做水平和垂直拆分
#axis = 0:行
#axis = 1:列
a = np.split(n,4)
a = np.split(n,4,axis=0)
print(a)
print()
m = np.split(n,4)
m = np.split(n,4,axis=1)
print(m)
8、拷贝
import numpy as np
​
#n2不会随着n的变化而变化
n = np.random.randint(0,10,size=(2,3))
n2 = n.copy()
n[0][0] = 0
print(n2)
print(n)
​
#注:如果用n3 = n,则n2会随着n的变化而变化
n3 = n
print(n3)

你可能感兴趣的:(python,numpy,开发语言)