GVKun编程网logo

Numpy:np.vstack()&np.hstack() flat/flatten

3

关于Numpy:np.vstack()&np.hstack()flat/flatten的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于HStack的垂直对齐不起作用且不直观、hstack(

关于Numpy:np.vstack()&np.hstack() flat/flatten的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于HStack 的垂直对齐不起作用且不直观、hstack()与vstack()函数、julia 是否具有与 python 中的 hstack 等效的功能?、numpy flatten() A等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

Numpy:np.vstack()&np.hstack() flat/flatten

Numpy:np.vstack()&np.hstack() flat/flatten

一 .  np.vstack: 按垂直方向(行顺序)堆叠数组构成一个新的数组

In[3]:
import numpy as np

In[4]:
a = np.array([[1,2,3]])
a.shape
Out[4]:
(1, 3)

In [5]:
b = np.array([[4,5,6]])
b.shape
Out[5]:
(1, 3)

In [6]:
c = np.vstack((a,b)) # 将两个(1,3)形状的数组按垂直方向叠加
print(c)
c.shape # 输出形状为(2,3)
[[1 2 3]
 [4 5 6]]
Out[6]:
(2, 3)

In [7]:
a = np.array([[1],[2],[3]])
a.shape
Out[7]:
(3, 1)

In [9]:
b = np.array([[4],[5],[6]])
b.shape
Out[9]:
(3, 1)

In [10]:
c = np.vstack((a,b))  # 将两个(3,1)形状的数组按垂直方向叠加
print(c)
c.shape # 输出形状为(6,1)
[[1]
 [2]
 [3]
 [4]
 [5]
 [6]]
Out[10]:
(6, 1)

二 . np.hstack:按水平方向(列顺序)堆叠数组构成一个新的数组

In[11]:
a = np.array([[1,2,3]])
a.shape
Out[11]:
(1, 3)

In [12]:
b = np.array([[4,5,6]])
b.shape
Out[12]:
(1, 3)

In [16]:
c = np.hstack((a,b)) # 将两个(1,3)形状的数组按水平方向叠加
print(c)
c.shape  # 输出形状为(1,6)
[[1 2 3 4 5 6]]
Out[16]:
(1, 6)

In [17]:
a = np.array([[1],[2],[3]])
a.shape
Out[17]:
(3, 1)
In [18]:
b = np.array([[4],[5],[6]])
b.shape
Out[18]:
(3, 1)
In [19]:
c = np.hstack((a,b)) 将两个(3,1)形状的数组按水平方向叠加
print(c)
c.shape  # 输出形状为(3,2)
[[1 4]
 [2 5]
 [3 6]]
Out[19]:
(3, 2)

三 .  numpy.ndarray.flat/flatten

1. flat返回的是一个迭代器,可以用for访问数组每一个元素

import numpy as np
a = np.arange(4).reshape(2,2)
print(a)
for i in a.flat:
    print(i)
#迭代器可以用list进行输出
print(list(a.flat))
print(type(a.flat))#返回类型为 numpy.flatiter
#可以用索引对迭代器进行引号
a.flat[3]
#输出:
[[0 1] [2 3]] 0 1 2 3 [0, 1, 2, 3] <class ''numpy.flatiter''> 3

2. ndarray.flatten(order=’C’)

Return a copy of the array collapsed into one dimension.
将数组的副本转换为一维,并返回

 

可选参数,order:{‘C’,‘F’,‘A’,‘K’}

 

    • ‘C’:C-style,行序优先
    • ‘F’:Fortran-style,列序优先
    • ‘A’:if a is Fortran contiguous in memory ,flatten in column_major order
    • ‘K’:按照元素在内存出现的顺序进行排序
      默认为’C’
a = np.array([[4,5],[4,9]])
#默认按行转换
b= a.flatten()
print(b)
#换成列来划分
c = a.flatten(''F'')
print(c)
[4 5 4 9]
[4 4 5 9]

 

HStack 的垂直对齐不起作用且不直观

HStack 的垂直对齐不起作用且不直观

如何解决HStack 的垂直对齐不起作用且不直观

我有这个代码:

  1. HStack (alignment:.center) {
  2. Text("50")
  3. ProgressView("",value: 50,total: 100)
  4. Text("100")
  5. Text("mg")
  6. }

结果是

enter image description here

我想要这个

enter image description here

我尝试了所有方法,例如向 HStack 添加对齐中心、在 vstack 中添加进度视图等

为什么 Apple 从来没有设法让与界面设计相关的东西直观地工作?

解决方法

还有另一种不使用“”的方法,它可以随心所欲地工作。

  1. import SwiftUI
  2. struct ContentView: View {
  3. var body: some View {
  4. HStack {
  5. Text("50")
  6. ProgressView(value: 50,total: 100) // <<: Here
  7. Text("100")
  8. Text("mg")
  9. }
  10. }
  11. }

enter image description here


您使用的版本也不错,但还有另一个用法,例如下面的代码。并且它需要为 Text 下推 ProgressView,实际上,在您的代码中 ProgressView 认为 "" 是要显示的信息!这就是你看到的原因。

  1. import SwiftUI
  2. struct ContentView: View {
  3. var body: some View {
  4. HStack {
  5. Text("50")
  6. ProgressView("This part is for information to help",value: 50,total: 100)
  7. Text("100")
  8. Text("mg")
  9. }
  10. }
  11. }

enter image description here

hstack()与vstack()函数

hstack()与vstack()函数

ref: https://blog.csdn.net/csdn15698845876/article/details/73380803

1. hstack()函数

a,b只有一个维度:对第一个维度拼接

a,b,c,d,有两个维度(3,2):对第二个维度拼接

a,b,c,有三个维度(3,2,1):对第二个维度拼接

 

a,b,有四个维度(3,2,4,2):对第二个维度拼接

2. vstack()函数

a,b只有一个维度,对第一个维度拼接

a,b有两个维度,对第一个维度拼接

 

a,b有两个维度,对第一个维度拼接

 

a,b有三个维度,对第一个维度拼接

 

  2  

a,b有四个维度,对第一个维度拼接

 

julia 是否具有与 python 中的 hstack 等效的功能?

julia 是否具有与 python 中的 hstack 等效的功能?

如何解决julia 是否具有与 python 中的 hstack 等效的功能?

我想使用长度为 n 的 d 列向量构造一个大小为 n x d 的二维数组。

julia 有没有这样的功能或者类似的东西?

解决方法

假设您有 2 列:

  1. julia> columns = [rand(1:20,3) for _ in 1:2]
  2. 2-element Vector{Vector{Int64}}:
  3. [20,3,19]
  4. [9,11,18]

hcat 完成每一列的工作:

  1. julia> hcat(columns[1],columns[2])
  2. 3×2 Matrix{Int64}:
  3. 20 9
  4. 3 11
  5. 19 18

您也可以使用 ... 运算符只传递整个向量:

  1. julia> hcat(columns...)
  2. 3×2 Matrix{Int64}:
  3. 20 9
  4. 3 11
  5. 19 18

Matrix 语法还支持从列构建一个:

  1. julia> [columns[1] columns[2]]
  2. 3×2 Matrix{Int64}:
  3. 20 9
  4. 3 11
  5. 19 18

numpy flatten() A

numpy flatten() A

flatten ():降至一维。

from numpy import *
x = mat(arange(12).reshape((3,4)))
print(x.flatten(),type(x.flatten()))
y=arange(12).reshape((3,4))
print(y.flatten(),type(y.flatten()))

 输出:

[[ 0  1  2  3  4  5  6  7  8  9 10 11]] <class ''numpy.matrixlib.defmatrix.matrix''>
[ 0  1  2  3  4  5  6  7  8  9 10 11] <class ''numpy.ndarray''>

 A:矩阵转化为数组

from numpy import *
a=[[1,2],[3,4]]
b=mat(a)
print(b.flatten(),type(b.flatten()))
print(b.flatten().A,type(b.flatten().A))
print(b.flatten().A[0])

 输出:

[[1 2 3 4]] <class ''numpy.matrixlib.defmatrix.matrix''>
[[1 2 3 4]] <class ''numpy.ndarray''>
[1 2 3 4]

 

关于Numpy:np.vstack()&np.hstack() flat/flatten的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于HStack 的垂直对齐不起作用且不直观、hstack()与vstack()函数、julia 是否具有与 python 中的 hstack 等效的功能?、numpy flatten() A等相关知识的信息别忘了在本站进行查找喔。

本文标签: