使用 scaler obj (numpy.insert) 将列插入数组
insert column into array using scaler obj (numpy.insert)
import numpy as np
a = np.array([[1, 6], [2, 7], [3, 8]])
print(a,'\n')
c2 = np.insert(a, [1], [[9],[99],[999]], axis=1)
print(c2,'\n')
c3 = np.insert(a, 1, [9,99,999], axis=1)
print(c3,'\n')
c4 = np.insert(a, 1, [[9],[99],[999]], axis=1)
print(c4,'\n')
c5 = np.insert(a, [1], [9,99,999], axis=1)
>>>the result:
[[1 6]
[2 7]
[3 8]]
c2 =
[[ 1 9 6]
[ 2 99 7]
[ 3 999 8]]
c3 =
[[ 1 9 6]
[ 2 99 7]
[ 3 999 8]]
c4 =
[[ 1 9 99 999 6]
[ 2 9 99 999 7]
[ 3 9 99 999 8]]
c5 =
[[ 1 9 99 999 6]
[ 2 9 99 999 7]
[ 3 9 99 999 8]]
为什么 C4 没有获取列值并将其插入到第 1 列的每个项目之前
我认为应该是
[[ 1 9 6][ 2 99 7][ 3 999 8]]
还有
a = np.array([[1, 6], [5, 2]])
print(a,'\n')
c4 = np.insert(a, 1, [[9,88],[99,66]], axis=1)
print(c4,'\n')
为什么结果等于
[[ 1 9 99 6]
[ 5 88 66 2]]
不等于
[[ 1 9 88 6]
[ 5 99 66 2]]
而沿轴0的插入轴将正常插入
c11 = np.insert(a, 1, [9,99], axis=0)
print(c11,'\n')
c12 = np.insert(a, 1, [[9],[99]], axis=0)
print(c12,'\n')
结果:
[[ 1 6]
[ 9 99]
[ 2 7]
[ 3 8]]
[[ 1 6]
[ 9 9]
[99 99]
[ 2 7]
[ 3 8]]
经过搜索我们找到了如下答案:
缩放器索引的输出是一维数组
a = np.array([[1, 6], [2, 7], [3, 8]])
print(a)
print(a[:,1])
print(a[:,[1]])
>>>
a
[[1 6]
[2 7]
[3 8]]
a[:,1]
[6 7 8]
a[:,[1]]
[[6]
[7]
[8]]
因此,当使用缩放器索引沿轴 1 插入列时,将为缩放器输出(一维数组)分配值,然后转置缩放器输出值以适合索引列。
a = np.array([[1, 6], [5, 2]])
print(a,'\n')
c4 = np.insert(a, 1, [[9,88],[99,66]], axis=1)
print(c4,'\n')
一个[:,1]
a[:,1] = [a01 a11] = [[9 88]
[99 66]]
所以
a01 = [[9 ] a11 = [[88]
[99]] [66]]
之后 a[:,1] 将被转置以适应列
[[ 1 9 99 6]
[ 5 88 66 2]]
当使用缩放器索引沿轴 1 插入列时,缩放器输出将适合行索引,
a = np.array([[1, 6], [2, 7], [3, 8]])
c11 = np.insert(a, 1, [9,99], axis=0)
print(c11,'\n')
c12 = np.insert(a, 1, [[9],[99]], axis=0)
print(c12,'\n')
a[1,:] of c11
a[1,:] = [a10 a11] = [9 99]
所以
a10 = [9] a11 = [99]
a[1,:] of c12(值将被广播)以适应 obj
a[1,:] = [a10 a11] = [[9 9 ]
[99 99]]
所以
a10 = [[9 ] a11 = [[9 ]
[99]] [99]]
结果:
[[ 1 6]
[ 9 99]
[ 2 7]
[ 3 8]]
[[ 1 6]
[ 9 9]
[99 99]
[ 2 7]
[ 3 8]]
import numpy as np
a = np.array([[1, 6], [2, 7], [3, 8]])
print(a,'\n')
c2 = np.insert(a, [1], [[9],[99],[999]], axis=1)
print(c2,'\n')
c3 = np.insert(a, 1, [9,99,999], axis=1)
print(c3,'\n')
c4 = np.insert(a, 1, [[9],[99],[999]], axis=1)
print(c4,'\n')
c5 = np.insert(a, [1], [9,99,999], axis=1)
>>>the result:
[[1 6]
[2 7]
[3 8]]
c2 =
[[ 1 9 6]
[ 2 99 7]
[ 3 999 8]]
c3 =
[[ 1 9 6]
[ 2 99 7]
[ 3 999 8]]
c4 =
[[ 1 9 99 999 6]
[ 2 9 99 999 7]
[ 3 9 99 999 8]]
c5 =
[[ 1 9 99 999 6]
[ 2 9 99 999 7]
[ 3 9 99 999 8]]
为什么 C4 没有获取列值并将其插入到第 1 列的每个项目之前 我认为应该是 [[ 1 9 6][ 2 99 7][ 3 999 8]]
还有
a = np.array([[1, 6], [5, 2]])
print(a,'\n')
c4 = np.insert(a, 1, [[9,88],[99,66]], axis=1)
print(c4,'\n')
为什么结果等于
[[ 1 9 99 6]
[ 5 88 66 2]]
不等于
[[ 1 9 88 6]
[ 5 99 66 2]]
而沿轴0的插入轴将正常插入
c11 = np.insert(a, 1, [9,99], axis=0)
print(c11,'\n')
c12 = np.insert(a, 1, [[9],[99]], axis=0)
print(c12,'\n')
结果:
[[ 1 6]
[ 9 99]
[ 2 7]
[ 3 8]]
[[ 1 6]
[ 9 9]
[99 99]
[ 2 7]
[ 3 8]]
经过搜索我们找到了如下答案:
缩放器索引的输出是一维数组
a = np.array([[1, 6], [2, 7], [3, 8]])
print(a)
print(a[:,1])
print(a[:,[1]])
>>>
a
[[1 6]
[2 7]
[3 8]]
a[:,1]
[6 7 8]
a[:,[1]]
[[6]
[7]
[8]]
因此,当使用缩放器索引沿轴 1 插入列时,将为缩放器输出(一维数组)分配值,然后转置缩放器输出值以适合索引列。
a = np.array([[1, 6], [5, 2]])
print(a,'\n')
c4 = np.insert(a, 1, [[9,88],[99,66]], axis=1)
print(c4,'\n')
一个[:,1]
a[:,1] = [a01 a11] = [[9 88]
[99 66]]
所以
a01 = [[9 ] a11 = [[88]
[99]] [66]]
之后 a[:,1] 将被转置以适应列
[[ 1 9 99 6]
[ 5 88 66 2]]
当使用缩放器索引沿轴 1 插入列时,缩放器输出将适合行索引,
a = np.array([[1, 6], [2, 7], [3, 8]])
c11 = np.insert(a, 1, [9,99], axis=0)
print(c11,'\n')
c12 = np.insert(a, 1, [[9],[99]], axis=0)
print(c12,'\n')
a[1,:] of c11
a[1,:] = [a10 a11] = [9 99]
所以
a10 = [9] a11 = [99]
a[1,:] of c12(值将被广播)以适应 obj
a[1,:] = [a10 a11] = [[9 9 ]
[99 99]]
所以
a10 = [[9 ] a11 = [[9 ]
[99]] [99]]
结果:
[[ 1 6]
[ 9 99]
[ 2 7]
[ 3 8]]
[[ 1 6]
[ 9 9]
[99 99]
[ 2 7]
[ 3 8]]