numpy-02-数组的索引

Posted 数学小学霸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy-02-数组的索引相关的知识,希望对你有一定的参考价值。

numpy-02-数组的索引

一.索引与切片

下标是从0开始的

1.1行操作

1.取行

print(t1[2])

结果

[          3         467      465465 46546465467           2]

2.取连续多行

print(t2[2:])

3.取不连续多行

取多行,要有2个中括号

print(t2[[2,8,10]])

2.2列操作

1.取列

print(t2[,2])

2.取行与所有列

print(t2[2:,:])

3. 取连续多列

print(t2[:,2:])

4.取不连续多列

print(t2[:,[0,2]])

5.取特定行列的值

print(t2[2,3])

2.3数值修改

直接赋值就行

1.小于某个值就赋值(布尔索引)

# 小于某个值就赋值
t1<10
t1[t1<10]

结果

array([1, 0, 2, 1, 3, 2, 4, 3, 5, 4, 6, 5, 7, 6, 8, 7, 9, 8, 9],
      dtype=int64)

2.where三元表达式

就是小于10赋值0大于10赋值为10

1.二元if else 表示式

a = 3 if 3>2 else 4
print(a)

2.三元使用

# 小于10就赋值0,大于10就赋值10
np.where(t1<10,0,10)

结果

array([[ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [10, 10, 10, 10,  0],
       [10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10],
       [10, 10, 10, 10, 10]])

3.clip裁剪

小于10就赋值10,大于18就赋值18

t.clip(10,18)

三.操作数组

3.1竖直拼接

np.vstack((t1,t2))
np.concatenate((t1,t2),axis = 0)

3.2水平拼接

np.hstack((t1,t2))
np.concatenate((t1,t2),axis = 1)

3.3行列交换

1.第二行与第三行交换?

就是取出再赋值

t[[1,2],:] = t[[2,1],:]

2.第一列与第三列交换

t[:,[0,2]] = t[:,[2,0]]

3.4构造全0或者全1数据

多少行与列

1.全0数据

zero_data = np.zeros((1,2))

结果

[[0. 0.]]

2.全1数据

ones_data = np.ones((2,3))

3.构造对角线为1的矩阵(eye数组)

np.eye(3)

3.5.copy与view产生的影响

1.a=b

完全不复制,a和b相互影响

2.a=b[:]

切片操作,会新建对象a,a的数据受b影响

3.a=b.copy()

复制,a和b相互不影响

3.6切割数组

1.横向切割

arrayA = np.arange(12).reshape(3, 4)
np.hsplit(arrayA,2)
# 或者
np.split(arrayA,2,axis = 1)

结果

[array([[0, 1],
        [4, 5],
        [8, 9]]),
 array([[ 2,  3],
        [ 6,  7],
        [10, 11]])]

2.纵向切割

np.vsplit(arr,2)
# 或者
np.split(arrayA,2,axis = 0)

四.统计

4.1获取最值

1.最大值

t是对应哪个矩阵

np.argmax(t,axis=0)

2.最小值

np.argmin(t,axis=1)

4.2生成随机数

1.rand()

生成0~1的随机数

np.random.rand(2,3)

2.randn()

创建标准正太分布的随机数,平均值为0,标准差为1

np.random.randn(2,3)

3.randint(low,high,shape)

生成给定上下范围的随机整数

np.random.randint(21,24,(2,3))

4.seed()

给定种子后,可以生成相同的随机数

np.random.seed(10)
np.random.randint(21,29,(2,3))

4.3nan和inf

1.nan

not a number (非数)

2.inf

infinity (无穷)

以上是关于numpy-02-数组的索引的主要内容,如果未能解决你的问题,请参考以下文章

乐哥学AI_Python:Numpy索引,切片,常用函数

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

java.lang.IllegalStateException:键 f0 的片段不再存在:索引 1

solr分布式索引实战分片配置读取:工具类configUtil.java,读取配置代码片段,配置实例

javascript UV Index Monitor App订阅PubNub并显示UV索引值。博文的代码片段。在这里查看项目:https:// githu